Рекурсивное копирование Powershell, кроме файлов, найденных в каталоге исключений - PullRequest
0 голосов
/ 18 сентября 2018

Привет, у меня есть папка с именем «A», а в папке «A» есть файлы и подпапки.У меня также есть еще один каталог папок под названием «Исключение», в котором есть несколько скопированных файлов и папок из «А».Я ищу сценарий Powershell или параметр командной строки, который будет копировать и перемещать все объекты из A, которые не найдены в каталоге исключения, в новый каталог папки с именем «Output».

Спасибо, -B

1 Ответ

0 голосов
/ 18 сентября 2018

Используйте Get-ChildItem, чтобы получить список файлов в каталоге исключений, затем возьмите только имена файлов и удерживайте их в массиве.

При желании используйте New-Item с параметром -Forceчтобы убедиться, что ваш выходной каталог существует, прежде чем отправлять туда файлы.

Далее используйте Get-ChildItem для перебора всех файлов в нашем каталоге исходного кода (A), используйте Where-Object и оператор -notin для исключения любых файлов.имена которых совпадают с именами, собранными в вашем каталоге исключений, затем используйте Move-Item для перемещения файлов в каталог назначения (выходной).

[string[]]$filenamesToExclude = Get-ChildItem -Path 'c:\somewhere\exclusion' -Recurse | Select-Object -ExpandProperty Name
New-Item -Path 'c:\somewhere\output\' -ItemType 'Directory' -Force | Out-Null #ensure the target directory exists / don't output this command's return value to the pipeline
Get-ChildItem -Path 'c:\somewhere\A' -Recurse | Where-Object {$_.Name -notin $filenamesToExclude} | Move-Item -Destination 'c:\somewhere\output\'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...