msanchez Geschrieben 14. Oktober 2007 Geschrieben 14. Oktober 2007 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
Cadpax Geschrieben 14. Oktober 2007 Geschrieben 14. Oktober 2007 @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
msanchez Geschrieben 14. Oktober 2007 Autor Geschrieben 14. Oktober 2007 Hi Cadpax, Danke für deine Antwort. Das Problem im Stammordner ist mit deinem Tipp gelöst. Der Schalter /S bewirkt leider nichts, hab es auf die unterschiedlichsten Arten probiert.
Cadpax Geschrieben 14. Oktober 2007 Geschrieben 14. Oktober 2007 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
msanchez Geschrieben 14. Oktober 2007 Autor Geschrieben 14. Oktober 2007 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
Cadpax Geschrieben 14. Oktober 2007 Geschrieben 14. Oktober 2007 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
msanchez Geschrieben 14. Oktober 2007 Autor Geschrieben 14. Oktober 2007 Jawohl das wars! Hab den Wald vor lauter Bäumen nicht gesehen :-) Du hast mir den Sonntag gerettet. Muchas Gracias! Cadpax
Cadpax Geschrieben 14. Oktober 2007 Geschrieben 14. Oktober 2007 Kein Problem. Immer gern. Nach erledigter arbeit schnapp ich mir jetzt den Hund und geh ruhigen Gewissens eni bisschen an der Ruhr spazieren. ;-) Mit freundlichen Grüßen, Cadpax
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden