Powershell (Windows 11) перемещает файлы и переименовывает

Я пытаюсь написать PowerShell, который позволит мне очищать файлы, помещать их в папки и переименовывать их, включая дату в имя файла, и как только я разработаю команды, я напишу для них сценарий.

Однако при попытке выполнить следующее я получаю сообщение об ошибке невозможности привязки аргумента.

Я не уверен, что делаю неправильно, поскольку я новичок в Powershell. Мне удалось использовать другой скрипт для переименования (добавления префикса имени файла) для работы с использованием get-childitem ... | Команда Rename-Item -NewName.....

      PS T:\Incoming Students\Spring 2024\OTEAS\CF_DATAFILES> $date = '20231114'
PS T:\Incoming Students\Spring 2024\OTEAS\CF_DATAFILES>  get-childitem .\OTE_OTEAS_BARMAP_CHECKSCORE* | Move-Item $_.Name -Destination .\BM_Math_Test_Record_QA\+{$_.Name -replace '.csv', '_'+$date+'.csv'}
Move-Item : Cannot bind argument to parameter 'Path' because it is null.
At line:1 char:59
+ ... -childitem .\OTE_OTEAS_BARMAP_CHECKSCORE* | Move-Item $_.Name -Destin ...
+                                                           ~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Move-Item], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.MoveItemCommand

Основываясь на отзывах ниже, я изменил команду следующим образом:

      foreach ($file in Get-ChildItem BM_Math_Test_Record_QA_* ) {Move-Item -Path $file -Destination ($file.Directory.ToString()+"\BM_Math_Test_Record_QA\"+$file.BaseName.tostring()+"_"+$(get-date -f yyyyMMdd)+$file.Extension) -Verbose} 

и, похоже, работает (пока...)

0 ответов

Другие вопросы по тегам