Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
@NotNerdNotDau : Ich habe /r hinzufügt (siehe letzte Fassung vom Code). Merkwürdigerweise funktioniert danach das Ersetzen in aktivem Verzeichnis als auch im Unterverzeichnissen nicht mehr.
Code:
@echo off
setlocal enabledelayedexpansion
color 3f
chcp 65001
cls
echo Script zum Umbenennen von Dateien
echo ------------------------------------------------------------
set /P frage="Bitte volständigen Pfad eingeben: "
set /P ext="Bitte die Dateiendung eingeben (Beispiel pdf): "
set /P suchen="Suchen: "
set /P ersetzen="Ersetzen: "
set unterordner=nein
set /P unterordner="Unterordner berücksichtigen (ja oder nein): "
set "pfad=%frage%"
set "dateiendung=%ext%"
set "suchtext=%suchen%"
set "ersetztext=%ersetzen%"
if %unterordner%==ja (
for /f /r "delims=" %%f in ('dir /s /b /a-d "%pfad%\*.%dateiendung%" 2^>nul') do (
set "File=%%~nxf"
echo %%~f
ren "%%~f" "!File:%suchtext%=%ersetztext%!"
)
)
if %unterordner%==nein (
for %%f in (%pfad%\*.%dateiendung%) do (
set "File=%%~nxf"
echo %%~f
ren "%%~f" "!File:%suchtext%=%ersetztext%!"
)
)
%SYSTEMROOT%\EXPLORER.EXE "%frage%"
Ja gut, das mit dem /r war nur so eine Idee von mir ins Blaue. Der steht aber sehr wohl für "recurse".
Da muss wohl tatsächlich noch eine Verzeichnisangabe dahinter.
Rename files within subdirectories
By default REN with a wildcard will only rename the files in a single folder, to recurse down into sub folders use a FOR /R command, after first changing to the top level directory.
e.g. A batch file to rename all .LOG files to .TXT in the 'C:\demo\' folder and all sub-folders:
CD C:\demo\
For /R %%G in (*.LOG) do Echo REN "%%G" "%%~dpnG.TXT"
Remove the echo to run this for real