使用列表复制项目.txt通配符作为参考



我有一个包含数百万个文件的文件夹,我想使用 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
}

问题就会消失。

最新更新