带有排除的Powershell 2.0 Copy-Item不排除要排除的文件

时间:2014-07-21 19:29:46

标签: powershell-v2.0 copy-item

我想使用powershell脚本将所有文件和子文件夹从一个文件夹复制到另一个文件夹 我尝试使用" get-help copy-item"在powershell上说我可以用-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

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

您能否告诉我使用Copy-Item的方式是否有任何问题,或者建议是否有其他方法使用PowerShell复制子文件夹和文件?

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

我猜测recurse参数在这种情况下实际上没有做到你可能期望的那样:Copy-Item