我有一个包含数百万个文件的文件夹,我想使用 PowerShell 从带有通配符的 txt 文件中移动文件,该文件查找文件名的内容。
我使用了下面粘贴的脚本,它仅适用于文本文件中的第一行。
例:
我想找到文件名 1,它会复制所有包含文件名 1 的文件。
但是如果我在.txt文件中添加更多通配符
*文件名1* *文件名2* *文件名3*
它仍然只找到文件名1文件,并且不会继续下一行。
$source = "c:tempsource"
$destination = "c:tempdestination"
$file_list = Get-Content "c:tempfile_list.txt"
foreach ($file in $file_list) {
$source = $source + "$file"
Copy-Item $source $destination
}
您正在更改循环中的变量$source
。使用更改的源路径,您的代码在第一次迭代后找不到要复制的任何其他文件,因为没有具有类似路径的文件
C:\temp\Source\*文件名1*\*文件名2* c:\temp\source\*文件名1*\*文件名2*\*文件名3* ...
更改此内容
foreach ($file in $file_list) {
$source = $source + "$file"
Copy-Item $source $destination
}
进入这个
foreach ($file in $file_list) {
Copy-Item "$source$file" $destination
}
问题就会消失。