Zum Inhalt springen

Batch File zum umbenennen von Unterordnern.


msanchez

Empfohlene Beiträge

Hi Leute,

Habe folgende Situation:

Ich habe einen Übergeordnenten Ordner (z.B. Test) In diesem Ordner

befinden sich mehrere Unterordner (z.B. test1, test5, blau, usw.) in diesen Unterordnern wiederum weitere Unterordner (z.B. orange, weiß...).

In allen Ordnern befinden sich Dateien die ich umbenennen will.

(z.B. "*jpg.100" in "*jpg", "*jpeg.100" in "*jpeg", "*bmp.100" in "*bmp").

Das umbenennen funktioniert, jedoch nur bei den Ordnern, die im Ordner C:\test liegen. Liegen die Dateien jedoch eine Ordnderstruktur tiefer, oder direkt unter C:\Test, so funktioniert das leider nicht. Was mache ich falsch?

Hier mein Batchfile:

@ECHO OFF

SET verzeichnis=c:\test

FOR /F "tokens=*" %%a in ('DIR %verzeichnis% /AD /B') DO (

IF EXIST "%verzeichnis%\%%a\*jpg.100" REN "%verzeichnis%\%%a\*jpg.100" "*jpg"

IF EXIST "%verzeichnis%\%%a\*jpeg.100" REN "%verzeichnis%\%%a\*jpeg.100" "*jpeg"

IF EXIST "%verzeichnis%\%%a\*bmp.100" REN "%verzeichnis%\%%a\*bmp.100" "*bmp"

)

Please Help!

Gruß

msanchez

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ECHO OFF


SET verzeichnis=c:\test


FOR /F "tokens=*" %%a in ('DIR %verzeichnis% /AD /B') DO (


IF EXIST "%verzeichnis%\%%a\*jpg.100" REN "%verzeichnis%\%%a\*jpg.100" "*jpg"

IF EXIST "%verzeichnis%\%%a\*jpeg.100" REN "%verzeichnis%\%%a\*jpeg.100" "*jpeg"

IF EXIST "%verzeichnis%\%%a\*bmp.100" REN "%verzeichnis%\%%a\*bmp.100" "*bmp"

IF EXIST "%verzeichnis%\*bmp.100" REN "%verzeichnis%\*bmp.100" "*bmp"

)
Würde dein Problem mit den Ordnern in dem Stammordner lösen.
@ECHO OFF


SET verzeichnis=c:\test


FOR /F "tokens=*" %%a in ('DIR %verzeichnis% /AD /S /B') DO (


IF EXIST "%%a\*jpg.100" REN "%%a\*jpg.100" "*jpg"

IF EXIST "%%a\*jpeg.100" REN "%%a\*jpg.100" "*jpeg"

IF EXIST "%%a\*bmp.100" REN "%%a\*jpg.100" "*bmp"

IF EXIST "%verzeichnis%\*jpg.100" REN "%verzeichnis%\*bmp.100" "*jpg"

IF EXIST "%verzeichnis%\*jpeg.100" REN "%verzeichnis%\*bmp.100" "*jpeg"

IF EXIST "%verzeichnis%\*bmp.100" REN "%verzeichnis%\*bmp.100" "*bmp"

)

Sollte alle deine Bedingungen erfüllen.

Probier einfach mal den Schalter /S dazu. Der führt alle Ordner und Unterordner absolut auf.

Habs etz allerdings nicht ausprobier und ich garantiere nicht für Fehler.

Mit freundlichen Grüßen,

Cadpax

Link zu diesem Kommentar
Auf anderen Seiten teilen

Welche Windows Version?

Bei mir (XP Prof SP2) gehts ohne Probleme. (eben getestet)

*edit*

Seh gerade nen Fehler


@ECHO OFF


SET verzeichnis=Ordner


FOR /F "tokens=*" %%a in ('DIR %verzeichnis% /AD /S /B') DO (


IF EXIST "%%a\*jpg.100" REN "%%a\*jpg.100" "*jpg"

IF EXIST "%%a\*jpeg.100" REN "%%a\*jpeg.100" "*jpeg"

IF EXIST "%%a\*bmp.100" REN "%%a\*bmp.100" "*bmp"

IF EXIST "%verzeichnis%\*jpg.100" REN "%verzeichnis%\*jpg.100" "*jpg"

IF EXIST "%verzeichnis%\*jpeg.100" REN "%verzeichnis%\*jpeg.100" "*jpeg"

IF EXIST "%verzeichnis%\*bmp.100" REN "%verzeichnis%\*bmp.100" "*bmp"

echo %%a

)


pause

So Stimmts. ;-)

Echo + pause zur Kontrolle

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich den Schalter /S setzte, dann benennt er mir nur das um, was sich

in C:\Test befindet alle Unterordner bleiben unberührt. *Am Kopf kratz*

Mit "echo/%%a" zeigt er mir die Unterordner und auch die darin liegenden Ordner an, er erkennts sie also. Aber er benennt mit die Dateien einfach nicht um.

Mein System ist WinXP SP2 inkl. alle Updates.

Der Code sieht nun folgendermaßen aus. Vielleicht fällt dir noch etwas Ungewöhnliches auf:

@ECHO OFF

SET verzeichnis=c:\test

FOR /F "tokens=*" %%a in ('DIR %verzeichnis% /AD /S /B') DO (

IF EXIST "%verzeichnis%\*gif.100" REN "%verzeichnis%\*gif.100" "*gif"

IF EXIST "%verzeichnis%\*jpg.100" REN "%verzeichnis%\*jpg.100" "*jpg"

IF EXIST "%verzeichnis%\*jpeg.100" REN "%verzeichnis%\*jpeg.100" "*jpeg"

IF EXIST "%verzeichnis%\*bmp.100" REN "%verzeichnis%\*bmp.100" "*bmp"

IF EXIST "%verzeichnis%\%%a\*gif.100" REN "%verzeichnis%\%%a\*gif.100" "*gif"

IF EXIST "%verzeichnis%\%%a\*jpg.100" REN "%verzeichnis%\%%a\*jpg.100" "*jpg"

IF EXIST "%verzeichnis%\%%a\*jpeg.100" REN "%verzeichnis%\%%a\*jpeg.100" "*jpeg"

IF EXIST "%verzeichnis%\%%a\*bmp.100" REN "%verzeichnis%\%%a\*bmp.100" "*bmp"

echo %%a

)

pause

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jap.

Du verkettest das Verzeichnis mit dem absoluten Pfad.

Der dir befehl gibt dir schon den kompletten Pfad zurück.Also

c:\test\u1

c:\test\u2

c:\test\u3

....

Du verkettest den noch, das schaut dann letzendlich so aus:

c:\test\c:\test\u1

Und zwar in den unteren 4 Zeilen:

IF EXIST "%verzeichnis%\%%a\*gif.100" REN "%verzeichnis%\%%a\*gif.100" "*gif"

IF EXIST "%verzeichnis%\%%a\*jpg.100" REN "%verzeichnis%\%%a\*jpg.100" "*jpg"

IF EXIST "%verzeichnis%\%%a\*jpeg.100" REN "%verzeichnis%\%%a\*jpeg.100" "*jpeg"

IF EXIST "%verzeichnis%\%%a\*bmp.100" REN "%verzeichnis%\%%a\*bmp.100" "*bmp"

Das %verzeichnis%\ ist hier falsch, da schon in %%a mit drin.

Dir dürften auch die kompletten Pfad ausgegeben werden. ;-)

Mit freundlichen Grüßen,

Cadpax

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...