Как переименовать несколько изображений, используя файл .bat с некоторыми условиями?

487
Shriram

В моем примере у меня есть два файла с именами
test_20554783jsd.jpg
test_1_2021848ing.jpg

Мне нужно переименовать эти файлы после подчеркивания ("_"), и я хочу, чтобы имена
нравились
test.jpg test_1.jpg

У меня уже есть код

 @echo off for /F "delims=" %%I in ('dir /A-D /B *_* 2^>nul') do ( for /F "tokens=1 delims=_ " %%J in ("%%~nI") do ren "%%I" "%%J%%~xI" )  

но проблема в том, что он удаляет подчеркивание ("_") с начала. Я не нуждаюсь в этом, потому что некоторые из имен файлов содержат undersore. поэтому мне нужно удалить все буквы после подчеркивания, в том числе подчеркивания формы th в конце.

Может кто-нибудь оптимизировать мой код
спасибо,

0
Вместо этого используйте powershell hjpotter92 6 лет назад 0

1 ответ на вопрос

0
Sandeep

Хотя это не дает прямого ответа на ваш вопрос. Но вы можете использовать PowerShell для этого, потому что он также поддерживает использование регулярных выражений.

Я использовал следующее для достижения этой цели:

Get-ChildItem . -file -Filter "*_*.jpg" | Rename-Item -newname { $_.name -replace "_[^_]+$", ".jpg"}

Чтобы без необходимости пытаться переименовать ** все ** файлы, вы должны gci только файлы, содержащие подчеркивание. LotPings 6 лет назад 0

Похожие вопросы