Hallo zusammen!
Ich habe vor einiger Zeit ein Script im Netz gefunden, das mehrere Dateien aus Unterordnern automatisch umbenennt und zwar entsprechend den Namen der Ordner. Da keine Sicherheitsabfrage dabei war, habe ich kurzerhand ein andere Script damit kombiniert. Da ich von solcher Programmierung keine Ahnung habe, bestand meine Arbeit lediglich darin, die Scriptteile an richtiger Stelle ein zu fügen. Nun wollte ich am Ende des Scriptes noch einen Text ausgeben. Doch leider wird der nicht angezeigt, stattdessen nur alles, was hinter ":NEIN" steht. Lasse ich nach der Zeile mit dem letzten "ren" Befehl alles weg und trage nur den Text mit "echo" ein, wiederholt sich der Text für jede einzelne Datei. Ich bin davon ausgegangen, das der Text nur einmal ausgegeben wird, nachdem die Loop-Schleife nach der letzten Datei beendet wird. Wo genau liegt der Fehler und wie bekomm ich es hin, das der Text "Operation ausgeführt" nur einmal angezeigt wird, sobald die letzte Datei umbenannt ist?
Hier das Script:
@echo off & setlocal
cls
echo -----------------------------------------------------------------------
echo Achtung! Alle Dateien der nächsten Unterordner-Ebene werden in den
echo jeweiligen Ordnernamen umbenannt.
echo Dabei werden nur Dateien im Verzeichnis C:\Temp berücksichtigt.
echo Bereits umbenannte Dateien werden mit dem Zusatz _1, _2, etc. versehen.
echo Dieses Tool funktioniert nur im Verzeichnis C:\Temp.
echo -----------------------------------------------------------------------
echo.
echo Fortfahren?
SET /P X=(J)a oder (N)ein?
IF /I "%X%"=="J" goto :JA
IF /I "%X%"=="N" goto :NEIN
goto ENDE
:JA
echo.
echo Bitte Warten!
for /d %%i in ("C:\Temp\\*.*") do (
pushd "%%i"
for /f "delims=" %%a in ('dir /b /a-d') do call :ProcessFile "%%~nxi" "%%a"
popd
)
goto :eof
:ProcessFile
if not exist "%~1%~x2" ren %2 "%~1%~x2" & goto :eof
set /a Zusatz=1
:Loop
set /a Zusatz+=1
if exist "%~1_%Zusatz%%~x2" goto :Loop
ren %2 "%~1_%Zusatz%%~x2"
goto :text
:text
echo.
echo Operation ausgeführt.
goto :eof
:NEIN
cls
echo Auf Wiedersehen!
echo.
:ENDE
Danke schonmal für eure Hilfe.