Windows 7 - 如何按文件名查找文件列表并将其复制到文件夹中

Windows 7 - 如何按文件名查找文件列表并将其复制到文件夹中

我有 200 个文件名的列表。我需要根据文件名找到位于不同子文件夹中的这些文件,并将它们复制到一个单独的文件夹中。我使用的是 Windows 7。我该怎么做?

谢谢,娜塔莉亚

答案1

我的建议是访问 Ninite.com,下载名为“Everything”的免费软件工具。它是一个简单的 Windows 搜索工具。安装后,等待 5 分钟左右即可索引您的文件。

在搜索字段中输入搜索词,您将立即获得结果,就像在 Google 上一样。看到结果后,您可以直接在 Everything 搜索窗口中操作文件,就像在 Windows 资源管理器中一样。您可以“全选”然后复制它们,然后在 Win Explorer 中转到您想要的文件夹并粘贴它们。

Everything 是一款非常棒的工具。您甚至不需要输入整个文件名,只需输入其中的一部分即可,例如“eag mp3”将返回文件名中带有“eag”的所有 MP3,例如“eagles - song name.mp3”

答案2

给你。先进行试运行。仔细阅读评论。

文件 fullfilenames.txt 将保留,因此您可以记录找到的每个文件。如果您需要多次运行此操作并希望保留该文件,请移动或重命名它。

将创建一个日志文件“movelog.txt”。如上所述,如果您想在每次运行后保留它,请移动或重命名它。

# Set your search directory and destination directory
$destdir = "[destination for files]"
$searchdir = "[top dir of search path]"

# Create empty file to contain the full path info for each file
echo $null > fullfilenames.txt
# Create array from your list of filenames
$filenames = Get-Content filenames.txt
# For each file in array of filenames get fullpath and assign var $fullname
foreach ($file in $filenames) {
     $fullname = Get-ChildItem $searchdir | Where-Object {$_.PSIsContainer -eq $False -and ($_.Name) -eq $file} | ForEach-Object {$_.FullName}
     # Add full path of file to fullfilenames.txt
     echo $fullname >> fullfilenames.txt
     # Uncomment next two lines for troubleshooting & dry run
     #echo $file
     #Write-Host $fullname
}

# Create array from new list of files with full path info and then move each file to destination.
# For troubleshooting & dry run, comment out following two lines.
$filenames = Get-Content fullfilenames.txt
echo $null > movelog.txt
foreach ( $file in $filenames ) {
    Move-Item $file $destdir
    # Log success/fail of each move
    echo "$(Get-Date -f o) $? $file" >> movelog.txt
}

注意:这是一个 powershell 脚本。将其保存为 whatever.ps1 并在 PowerShell 控制台中运行它。

享受

答案3

您可以在“Everything”中通过 分隔来搜索文件列表|

例如:file1|file2|file3|file4

《一切》的下载链接:https://www.voidtools.com/downloads/

相关内容