从文本文件中获取文件名列表,将这些文件从一个文件夹移动到另一个文件夹。

3
我有一个文本文件,其中包含一系列带有扩展名的文件名(文件名中没有空格)。
我有两个文件夹在不同的路径下,比如C:\ThirdParty和C:\Users。这些路径下会有子文件夹。
我需要在这两个文件夹及其子文件夹中搜索文本文件中的每个文件名,并将完全匹配的文件移动到另一个文件夹,比如C:\Backup\ThirdParty和C:\Backup\Users。
我该怎么在Windows 7中使用powershell或命令提示符实现呢?
我不知道如何开始,或者我在powershell和DOS命令方面一无所知。
1个回答

9

这个脚本可以用于C:\ThirdParty,并且可以根据您的需求进行适配。

$file_list = Get-Content C:\list.txt
$search_folder = "C:\ThirdParty"
$destination_folder = "C:\Backup\ThirdParty"

foreach ($file in $file_list) {
    $file_to_move = Get-ChildItem -Path $search_folder -Filter $file -Recurse -ErrorAction SilentlyContinue -Force | % { $_.FullName}
    if ($file_to_move) {
        Move-Item $file_to_move $destination_folder
    }
}

使用 Get-Content 命令可以获取文件列表(每行一个),并存储在名为 $file_list 的数组中。
设置 $search_folder,然后循环搜索文件夹及其子文件夹中的每个文件。如果找到该文件,则将其移动到 $destination_folder 中。

2
值得注意的是,此脚本必须以 .ps1 扩展名保存,并通过 Powershell 运行。 - Paul Chris Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接