Wie benennen Sie mehrere Bilder mit .bat-Datei unter bestimmten Bedingungen um?

545
Shriram

In meinem Beispiel habe ich zwei Dateien mit den Namen
test_20554783jsd.jpg
test_1_2021848ing.jpg

Ich muss diese Dateien nach dem Unterstrich ("_") umbenennen und ich möchte die Namen wie
test.jpg
test_1.jpg

Ich habe bereits Code

 @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" )  

Das Problem ist jedoch, dass der Unterstrich ("_") von Anfang an entfernt wird. Ich brauche das nicht, weil einige der Dateinamen Unterspeicher enthalten. Ich muss also alle Buchstaben nach Unterstrich einschließlich Unterstrichform als letztes entfernen.

Kann jemand meinen Code
danke optimieren ,

0
Verwenden Sie stattdessen Powershell hjpotter92 vor 5 Jahren 0

1 Antwort auf die Frage

0
Sandeep

Obwohl es Ihre Frage nicht direkt beantwortet. Sie können jedoch PowerShell dafür verwenden, da auch die Verwendung regulärer Ausdrücke unterstützt wird.

Ich habe folgendes verwendet, um dies zu erreichen:

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

Um nicht unnötigerweise ** alle ** Dateien umzubenennen, sollten Sie gci nur Dateien mit Unterstrich verwenden. LotPings vor 5 Jahren 0