Diese Batchdatei sollte es für Sie tun.
Kopieren Sie die Batchdatei unten in eine Textdatei und speichern Sie sie als xrename.cmd (oder "was auch immer Sie wollen. Cmd").
Wenn Sie die Datei einfach so ausführen:
xrename.cmd
Es wird im aktuellen Ordner und in allen Unterordnern nachgeschlagen und alle Dateien umbenannt wie: ABC12345_DEF in ABC12345.DEF (alles wie "text_moretext" in "text.moretext").
Sie können auch Werte für "search-string", "replace-string" und "search-pattern" in der Befehlszeile angeben.
Um Anweisungen
anzuzeigen, führen Sie es wie folgt aus : xrename.cmd / help
Hinweis: Ich habe die Stapeldatei so erstellt, dass nur die Dateien angezeigt werden, die umbenannt werden sollen. Es findet jedoch keine Umbenennung statt. Sie können die Batchdatei ausführen und sehen, was passiert, ohne etwas umzubenennen. Nachdem Sie die Datei ausgeführt haben und sicher sind, dass die korrekten Dateien ordnungsgemäß umbenannt werden, können Sie die Zeile wie unten beschrieben löschen, um die Umbenennung zu aktivieren, und dann die Batchdatei erneut ausführen.
Möglicherweise müssen Sie den Wert für "Suchmuster" ändern, um die gewünschten Dateien anzuzeigen.
Bei den Bezeichnungen ": default1" und ": default2" können Sie die Werte für "match-string" "suchmuster" und "replace-string" entsprechend Ihren Anforderungen bearbeiten.
Diese Batch-Datei hat einige Fehlerprüfungen und schlägt nicht fehl, wenn die "Match-Zeichenfolge" in den Namen der Ordner oder Unterordner gefunden wird.
@echo off if "%~1%~2%~3."=="." goto :default1 if /i "%~1."=="/help." goto :syntax if "%~1."=="." goto :syntax rem %2 can be empty to use "*matchstring*" as the "search-pattern" rem %3 can be empty to make replacement with empty string (delete matchstring). set "matchstring=%~1" set "replacestring=%~3" if "%~2."=="." goto :default2 set "searchpattern=%~2" goto :start :default1 set "matchstring=_" set "replacestring=." :default2 set "searchpattern=*%matchstring%*" :start set "renamecount=0" set "errorcount=0" echo. for /r %%f in ("%searchpattern%") do call :work "%%~dpf" "%%~nxf" echo. if %renamecount% EQU 0 echo No files renamed. if %renamecount% EQU 1 echo Renamed %renamecount% file. if %renamecount% GEQ 2 echo Renamed %renamecount% files. if %errorcount% EQU 1 echo %errorcount% error renaming files. if %errorcount% GEQ 2 echo %errorcount% errors renaming files. echo. goto :cleanexit :work set matchedfilepath=%~1 set matchedfilename=%~2 rem You can't do it directly like this: rem set "newfilename=%matchedfilename:%matchstring%=%replacestring%%" for /F "usebackq delims=" %%g in (`echo set "newfilename=%%matchedfilename:%matchstring%=%replacestring%%%"`) do %%g echo In path "%matchedfilepath%": Renaming "%matchedfilename%" to "%newfilename%" rem delete the next line (goto :EOF) to make renaming active goto :EOF ren "%matchedfilepath%%matchedfilename%" "%newfilename%" if %errorlevel% NEQ 0 goto :workerror if not exist "%matchedfilepath%%newfilename%" goto :workerror goto :workok :workerror echo Rename "%matchedfilepath%%matchedfilename%" failed. set /A errorcount=errorcount+1 echo. goto :EOF :workok set /A renamecount=renamecount+1 goto :EOF :syntax rem:syntax echo. echo Syntax: echo %~nx0 ["match-string" ["search-pattern"] ["replace-string"]] echo. echo Search for files matching "search-pattern" in current folder and through all echo subfolders. For each matched file, rename file by replacing "match-string" echo with "replace-string". echo. echo If "replace-string" is empty or not specified, rename file by deleting echo "match-string". echo. echo If "search-pattern" is empty, use "*matchstring*" as the "search-pattern". echo. echo If "match-string" "search-pattern" and "replace-string" are all empty or not echo specified, then defined defaults will be used. echo. echo If "search-pattern" and/or "replace-string" are NOT empty then "match-string" echo cannot be empty, echo. goto :EOF :cleanexit set "matchstring=" set "replacestring=" set "searchpattern=" set "renamecount=" set "errorcount=" set "matchedfilepath=" set "matchedfilename=" set "newfilename=" goto :EOF
Wenn Sie die Batchdatei ausgeführt haben und sicher sind, dass die korrekten Dateien ordnungsgemäß umbenannt werden, können Sie die Datei bearbeiten, um die beschriebenen Zeilen zu entfernen, um die Umbenennung zu aktivieren, und dann die Batchdatei erneut ausführen.
Um dies zu tun, finde die zwei Zeilen, die so aussehen:
rem delete the next line (goto :EOF) to make renaming active goto :EOF
Entfernen Sie dann die Zeile "goto: EOF" (oder entfernen Sie beide Zeilen).
Entfernen Sie "goto: EOF" nicht von einer anderen Stelle in der Batchdatei (diese kann an einigen Stellen gefunden werden, stellen Sie also sicher, dass Sie die richtige entfernen).
Wenn dies für Sie nicht funktioniert oder wenn Sie mir etwas in der Batchdatei erklären möchten, lassen Sie es mich wissen.