#powershell #file-rename
Вопрос:
Я новичок в Powershell и нуждаюсь в некоторой помощи. У меня есть некоторые идеи, но я не уверен, в каком направлении двигаться. Это то, что я хочу сделать:
- Поиск в папке
- Переименуйте все найденные файлы на основе даты/строки в имени файла: (пример ниже) Примечание. эти даты/строки файлов меняются с датами
Старое Название:
тестовый файл_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".