Смущает использование Remove-Item с -Recurse AND -Exclude - PullRequest
0 голосов
/ 01 марта 2019

У вас есть вопрос об Remove-Item и параметрах -Recurse и -Exclude.На удаленном компьютере я хотел бы рекурсивно удалить все подкаталоги / файлы, за исключением одного конкретного файла, и все же, когда я запускаю следующее, все в родительском каталоге удаляется, и кажется, что параметр -Exclude игнорируется.

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

Когда я просматриваю документацию для Remove-Item , я вижу эту строку, в которой говорится об известной проблеме, но они не даюткакие-нибудь подробности относительно того, что может быть известная проблема.

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

Есть предложения или идеи относительно того, что я делаю неправильно?

1 Ответ

0 голосов
/ 01 марта 2019

Мне не удалось найти известную проблему, но похоже, что она работает.

Invoke-Command -Computer MyRemoteComputer -ScriptBlock {Get-ChildItem -Path C: \ Folder -Include *-Рекурс |Remove-Item -Exclude Startup.ps1 -Recurse -Force}

Поскольку результаты Get-ChildItem - это то, что мы удаляем, нам нужно -Recurse, чтобы удалить все подпапки и их содержимое, однако Удалить-Item не удалит вложенные папки и содержимое без указания -Recurse.

Надеемся, что это позволит избежать «известной проблемы» с Recurse on Remove-Item.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...