Как правильно использовать командлет Copy-Item?
Я создаю небольшой скрипт, который должен скопировать все .zip
файлы в специальную папку под названием F:tempzip
.
я попробовал с Скопировать Элементов командлет, но мне не удалось это сделать. Скрипт должен скопировать все файлы из этой папки (рекурсивно), которые являются ".промелькнуть."
Это та часть сценария, о которой я говорю:
get-childitem F:Workxxxxxxxxx -recurse | where {$_.extension -eq ".zip"} |
copy-item F:tempzip
что я должен добавить?
3 ответов
при транспортировке элементов в copy-item
вы должны сказать ему, что "F:\tempzip"
- путь назначения.
| Copy-Item -Destination F:\tempzip
вы также можете вырезать трубопроводы в where
оператор с помощью Get-ChildItem
's параметр -filter
.
Get-Childitem "C:\imscript" -recurse -filter "*.zip" | Copy-Item -Destination "F:\tempzip"
редактировать: удаление ненужных foreach
цикл и обновленное объяснение.
Это намного проще, чем. Скопировать Элементов своя - Recurse переключатель. Все, что вам нужно сделать, это:
Copy-Item F:\Work\xxx\xxx\xxx\*.zip F:\tempzip -Recurse
по какой-то причине рекурсия Copy-Item не выполнила то, что я хотел, как упоминалось здесь, и как она документирована для работы. Если у вас есть куча *.zip или *.jpg-файлы в произвольно глубоких иерархиях подпапок, и вы хотите скопировать их в одно место (одна плоская папка, в другом месте), мне больше повезло с командой piped с участием Get-ChildItem. Скажем, вы находитесь в папке, содержащей корень вашего поиска:
Get-ChildItem -Recurse -Include *.zip | Copy-Item -Destination C:\Someplace\Else
эта команда скопирует все файлы и не дублировать иерархии папок.