TheLightforce Geschrieben 12. Februar 2011 Teilen Geschrieben 12. Februar 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 12. Februar 2011 Teilen Geschrieben 12. Februar 2011 Die Ausgabe am Ende kannst du nach der FOR-Schleife unterhalb von "popd" unterbringen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.