Powershell — переименование файлов

#powershell #file-rename

Вопрос:

Я новичок в Powershell и нуждаюсь в некоторой помощи. У меня есть некоторые идеи, но я не уверен, в каком направлении двигаться. Это то, что я хочу сделать:

  1. Поиск в папке
  2. Переименуйте все найденные файлы на основе даты/строки в имени файла: (пример ниже) Примечание. эти даты/строки файлов меняются с датами

Старое Название:

тестовый файл_2021-09-20_помощь

тестовый файл_2021-09-22_помощь

тестовый файл_2021-09-23_хелп

тестовый файл_2021-09-24_помощь

Новое Имя:

092021 файл изменений

092022 файл изменений

092023 файл изменений

092024 файл изменений

Любая помощь будет очень признательна

Комментарии:

1. Ну и что же ты пробовал? мы хотели бы увидеть вашу попытку в этом

2. Похоже на работу для регулярных выражений.

3. Кажется странным, что вы хотите использовать только первые две цифры из части года.. Тогда какая от этого польза?

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

Ответ №1:

Вот пример, который может помочь.

 # echo hi | set-content testfile_2021-09-20_help, testfile_2021-09-22_help,
#   testfile_2021-09-23_help, testfile_2021-09-24_help

dir | rename-item -newname { $_ -match '(d{4})-(d{2})-(d{2})' > $null;
  $matches.2   $matches.1   $matches.3   " changefile" } -whatif

What if: Performing the operation "Rename File" on target 
        "Item: C:Usersadminfootestfile_2021-09-20_help 
  Destination: C:Usersadminfoo9202120 changefile".
What if: Performing the operation "Rename File" on target 
        "Item: C:Usersadminfootestfile_2021-09-22_help 
  Destination: C:Usersadminfoo9202122 changefile".
What if: Performing the operation "Rename File" on target 
        "Item: C:Usersadminfootestfile_2021-09-23_help 
  Destination: C:Usersadminfoo9202123 changefile".
What if: Performing the operation "Rename File" on target 
        "Item: C:Usersadminfootestfile_2021-09-24_help 
  Destination: C:Usersadminfoo9202124 changefile".