Get-ChildItem передается в Copy-Item с переименованием в тот же каталог - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь массово копировать / переименовывать файлы определенного расширения в определенной папке в ту же папку с префиксом. Я уверен, что это проблема с моей собственной неопытностью Пауэршелла. Я просто не знаю, как настроить команду.

Я пытаюсь взять все файлы с расширением .mxd в папке и переименовать их из thing.mxd в _prefix_something.mxd_

Я почти уверен, что первый раздел в порядке: Get-ChildItem *.mxd Но я не знаю, как работать с Copy-Item достаточно хорошо. Насколько я понимаю, -Destination - это то место, куда вы бы поместили новое имя файла, поэтому как мне ввести ("current-folder\prefix" + $_.Name + ".mxd") ??

Я уверен, что мне просто не хватает нескольких ключевых моментов, чтобы заставить это работать. Все, что я получаю, это один файл "prefix_.mxd". Это тот же размер, что и последний файл в списке Get-ChildItem. Но если я возвращаю цикл foreach, он запрашивает значения пути. Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Как это? Документ для переименования элемента имеет аналогичный пример.

dir *.mxd | copy-item -destination { 'prefix_' + $_.name } -whatif
0 голосов
/ 28 октября 2019

Stupid. Я должен заставить скрипт-блок с curlybraces {} вместо использования круглых скобок (), и я могу пропустить путь к текущей папке, начиная с префикса.

...