Пакетные файлы переименовывать части имени файла - PullRequest
1 голос
/ 28 января 2020

Я хочу заменить некоторые части всех имен файлов из папки чем-то другим.

123_abc_def.txt, 234_abc1_def1.txt, 333_abc2_edf2.txt и т. Д. ...

Должно быть: 908_abc_def.txt, 908_abc1_def1.txt, 908_abc2_edf2.txt, ...

Я пробовал:

echo on
SET data=%~dp0
for /f "tokens=1,2,3 delims=_" %%a in (
'dir /b /a-d "%data%\*_*.txt" '
) Do (

ren "%data%%%a_%%b_%%c" "%data%908_%%b_%%c"
)

Но я всегда получаю синтаксис ошибка. Что я тут не так сделал?

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Используйте это с помощью powershell:

powershell -NoProfile -Command {Get-ChildItem "FilePath" | Rename-Item -NewName {$_.Name -replace "^\d{3}", "908"} 
0 голосов
/ 28 января 2020

Снимите -whatif, если он выглядит хорошо.

powershell "dir | ren -newname { $_.name -replace '^...','908' } -whatif"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...