Скопируйте файл с определенным именем в новую папку - PullRequest
0 голосов
/ 13 января 2020

У меня есть сценарий powershell, который будет искать в подпапках каталога и копировать любые файлы, которые содержат указанную строку c в имени, а затем перемещать их в другую папку, которую он создает. Проблема у меня заключается в том, что скрипт создает не новую папку, а просто новый файл без расширения. Вот мой сценарий.

 Get-ChildItem -Path 'C:\users\user1\Documents\q3\' -Recurse | Where-Object { $_.Name -like "*test2*" -and $_.FullName -notmatch 'newfolder' } | Copy-Item -Destination 'C:\Users\user1\Documents\Q3\test'

1 Ответ

0 голосов
/ 13 января 2020

Нет параметра с таким поведением, как: "createifnotexist" для каталогов в функции powershell copy-item () . (Я использую PowerShell 5.1 и не смог его найти)

Это способ достижения вашей цели с одним вкладышем

New-Item -ItemType Directory -Name "test" -Path 'C:\Users\user1\Documents\Q3' -Force; Get-ChildItem -Path 'C:\users\user1\Documents\q3\' -Recurse | Where-Object { $_.Name -like "*test2*" -and $_.FullName -notmatch 'newfolder' } | % { Copy-Item -Path "C:\Users\user1\Documents\Q3\test\"}

Новый предмет переопределит последнюю созданную папку с -Force

...