【问题标题】:Powershell 2.0 Copy-Item with Exclude is not excluding the files to be excludedPowershell 2.0 Copy-Item with Exclude 不排除要排除的文件
【发布时间】:2014-07-21 19:29:46
【问题描述】:

我想使用 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

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

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

谢谢

【问题讨论】:

    标签: powershell-2.0 copy-item


    【解决方案1】:

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

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

    我猜 recurse 参数在这种情况下实际上并没有达到您的预期:Copy-Item

    【讨论】:

    • 我尝试了你建议的方式,但它所做的只是没有复制 $SourceDir 而是复制了 $SourceDir 中的所有内容,并且再次排除不起作用
    • @RahulLodha 那是个很奇怪的人。我在所有版本中都对此进行了测试,它确实有效,所以你必须做一些不同的事情。
    猜你喜欢
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多