将Remove-Item与-Recurse和-Exclude混淆

时间:2019-03-01 04:34:58

标签: powershell

有一个关于Remove-Item以及-Recurse和-Exclude参数的问题。在远程计算机上,我想递归地删除所有子目录/文件,但一个特定文件除外,但是当我运行以下文件时,父目录中的所有内容都将被删除,并且-Exclude参数似乎被忽略了。

Invoke-Command -Computer MyRemoteComputer -ScriptBlock {Remove-Item $args -Force -Recurse -Exclude 'C:\Folder\Startup.ps1'} -ArgumentList 'C:\Folder\'

当我查看documentation for Remove-Item时,确实看到了有关已知问题的一行,但是他们没有提供有关已知问题可能是什么的详细信息。

Because the Recurse parameter in Remove-Item has a known issue...

关于我在做什么错的任何建议或想法?

1 个答案:

答案 0 :(得分:0)

我无法找到已知问题,但这似乎确实有用。

  

调用命令-计算机MyRemoteComputer-脚本块{Get-ChildItem   -路径C:\ Folder -Include *-递归|删除项目-排除Startup.ps1-递归-Force}

由于Get-ChildItem的结果是我们要删除的结果,因此我们需要-Recurse来删除所有子文件夹及其内容,但是Remove-Item不会在未指定{{1}的情况下删除子文件夹及其内容}。

希望这可以避免Remove-Item上的“已知问题”。