Zum Inhalt springen

Schönheitsfehler in Batch-Datei beheben


TheLightforce

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...