Powershell 2.0 Copy-Item with Exclude不排除要排除的文件



我想使用powershell脚本将所有文件和子文件夹从一个文件夹复制到另一个文件夹我试着在powershell上使用"get-help copy-item",它说我可以用-Exclude复制项目来排除我不想复制的文件。所以我使用以下脚本

param($SourceDir,$OutDir)
$TempDir=$OutDir
$TestFiles = get-childitem $SourceDir -exclude *.ps1 -recurse
$TestFiles = Get-ChildItem $SourceDir -recurse -Exclude *.txt
Copy-Item $SourceDir $TempDir -recurse -Exclude *.txt

但是当我看到指向$OutDir的文件夹时,我看到所有文件,包括。txt文件都复制过来了。此外,当我使用Powershell ISE进行调试时,我看到$TestFiles对象没有任何.txt文件。

你能告诉我我使用copy - item的方式有什么问题吗?或者建议是否有其他方法可以使用powershell复制子文件夹和文件?

谢谢

这里的问题是您告诉它将一个目录复制到另一个目录。相反,告诉powershell复制目录中的所有内容,这样它实际上会遍历每个文件,并排除txt文件。

Copy-item $SourceDir* $TempDir -exclude *.txt

我猜递归参数实际上没有做你可能期望它在这种情况下:Copy-Item

最新更新