Datei mit Ordnernamen umbenennen, aus Ordner verschieben und diesen löschen!
Hallo an alle!
Bin leider eher ein Batch-Novize, ... vielleicht könnt Ihr mir hier weiter helfen!
Danke im Voraus für Eure Hilfe!
Ich habe folgende Herausforderung, die es zu lösen gilt:
in einer Ordner z.B. c:\temp habe ich mehrere Unterordner (Anzahl variiert) c:\temp\Verzeichnis 1, c:\temp\Verzeichnis B... in dem sich mehrere Dateien befinden.
- diese Dateien sollen den Namen des Ordners z.B. Verzeichnis 1.txt, Verzeichnis B.txt ... erhalten in dem sie sich befinden - bei Beibehaltung der Endung!
- anschließend in den darunter liegenden Ordner hier im Beispiel c:\temp\ verschoben werden.
- das leere Verzeichnis soll anschließend gelöscht werden (am Ende sollen alle Verzeichnisse/ Ordner gelöscht sein!).
Wie kann dies in einer Batch realisiert werden? Die Batch soll systematische alle Ordner in einem frei wählbaren Verzeichnis abarbeiten!
Aufbau-Beispiel:
Die Ordner liegen z.B. alle in c:\Temp\
Verzeichnis 1
Datei x.jpg
Datei x.txt
Verzeichnis B
Noch eine Datei z.jpg
Noch eine Datei z.txt
Verzeichnis 3
Eine weitere Datei.jpg
Eine weitere Datei.txt
Als Ergebnis nach dem Batchaufruf sollte im Verzeichnis c:\temp\ nur noch zu finden sein:
Verzeichnis 1.jpg
Verzeichnis 1.txt
Verzeichnis B.jpg
Verzeichnis B.txt
Verzeichnis 3.jpg
Verzeichnis 3.txt
Ideal wäre es, wenn man dies in einer Batch lösen könnte, die ab nicht statisch/ starr nur in einen bestimmten Verzeichnis z. B. c:\temp\ funktioniert, sondern die nach belieben einfach in ein Verzeichnis kopiert und aufgerufen werden kann!
Ich habe keine Idee wie man das realisieren könnte. Weiß hier jemand Rat und könnte mir helfen!
Ich wäre für jede Lösung dankbar.
Viele Grüße
Andichrist
Bin leider eher ein Batch-Novize, ... vielleicht könnt Ihr mir hier weiter helfen!
Danke im Voraus für Eure Hilfe!
Ich habe folgende Herausforderung, die es zu lösen gilt:
in einer Ordner z.B. c:\temp habe ich mehrere Unterordner (Anzahl variiert) c:\temp\Verzeichnis 1, c:\temp\Verzeichnis B... in dem sich mehrere Dateien befinden.
- diese Dateien sollen den Namen des Ordners z.B. Verzeichnis 1.txt, Verzeichnis B.txt ... erhalten in dem sie sich befinden - bei Beibehaltung der Endung!
- anschließend in den darunter liegenden Ordner hier im Beispiel c:\temp\ verschoben werden.
- das leere Verzeichnis soll anschließend gelöscht werden (am Ende sollen alle Verzeichnisse/ Ordner gelöscht sein!).
Wie kann dies in einer Batch realisiert werden? Die Batch soll systematische alle Ordner in einem frei wählbaren Verzeichnis abarbeiten!
Aufbau-Beispiel:
Die Ordner liegen z.B. alle in c:\Temp\
Verzeichnis 1
Datei x.jpg
Datei x.txt
Verzeichnis B
Noch eine Datei z.jpg
Noch eine Datei z.txt
Verzeichnis 3
Eine weitere Datei.jpg
Eine weitere Datei.txt
Als Ergebnis nach dem Batchaufruf sollte im Verzeichnis c:\temp\ nur noch zu finden sein:
Verzeichnis 1.jpg
Verzeichnis 1.txt
Verzeichnis B.jpg
Verzeichnis B.txt
Verzeichnis 3.jpg
Verzeichnis 3.txt
Ideal wäre es, wenn man dies in einer Batch lösen könnte, die ab nicht statisch/ starr nur in einen bestimmten Verzeichnis z. B. c:\temp\ funktioniert, sondern die nach belieben einfach in ein Verzeichnis kopiert und aufgerufen werden kann!
Ich habe keine Idee wie man das realisieren könnte. Weiß hier jemand Rat und könnte mir helfen!
Ich wäre für jede Lösung dankbar.
Viele Grüße
Andichrist
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78573
Url: https://administrator.de/contentid/78573
Ausgedruckt am: 25.11.2024 um 02:11 Uhr
23 Kommentare
Neuester Kommentar
Hallo @Universum,
habe durch googeln den Beitrag gefunden und war ganz begeistert, da ich gerade eine verhunzte nero-Sicherung reparire. So mit umbenennen .nco in .zip. Beim entpacken wird dann je datei ein Verzeichnis angelegt, das so heißt, wie die ursprüngliche Date.
Habe mich gleich angemeldet und bitt gleich um Hilfe.
Habe dann also so was:
Unterverzeichnis\dateiname.jpg\dateiname.jpg
Dabei ist das erste "dateiname.jpg" natürlich der Verzeicnisname und danach die Datei "dateiname.jpg".
Die batch macht mir daraus
dateiname.jpg.jpg
Alle meine Versuch waren erfolglos. Zuerst habe ich mal rumprobiert, einfach um rauszukriegen was die batch macht. Zunächst habe ich die Datei umbenannt und die Erweiterung jpg weggelassen. Dann werde ich gefragt, ob ich überschreiben möchte, worauf aber nichts passiert.
Das Gleiche passier, wenn ich in der batch das %%~xj weglasse.
Das funktioniert dann, wenn ich den Dateinamen verändere, indem ich in der batch z.B. eine 0 vor den Dateinamen mache 0"%%i%%~xj". Dann klebt halt immer eine 0 davor, aber die batch funktioniert., ich nehme an, weil der Dateiname und der Veruzeichnisname nicht mehr identisch sind.
Ich hoffe, es ist rübergekommen, was ich meine und probiert habe. Da ich ein Laie bin und nur rudimentäre Kenntnisse aus alten dos-Zeten habe, komme ich nicht wieter.
Danke und Gruß
Karlooser
habe durch googeln den Beitrag gefunden und war ganz begeistert, da ich gerade eine verhunzte nero-Sicherung reparire. So mit umbenennen .nco in .zip. Beim entpacken wird dann je datei ein Verzeichnis angelegt, das so heißt, wie die ursprüngliche Date.
Habe mich gleich angemeldet und bitt gleich um Hilfe.
Habe dann also so was:
Unterverzeichnis\dateiname.jpg\dateiname.jpg
Dabei ist das erste "dateiname.jpg" natürlich der Verzeicnisname und danach die Datei "dateiname.jpg".
Die batch macht mir daraus
dateiname.jpg.jpg
Alle meine Versuch waren erfolglos. Zuerst habe ich mal rumprobiert, einfach um rauszukriegen was die batch macht. Zunächst habe ich die Datei umbenannt und die Erweiterung jpg weggelassen. Dann werde ich gefragt, ob ich überschreiben möchte, worauf aber nichts passiert.
Das Gleiche passier, wenn ich in der batch das %%~xj weglasse.
Das funktioniert dann, wenn ich den Dateinamen verändere, indem ich in der batch z.B. eine 0 vor den Dateinamen mache 0"%%i%%~xj". Dann klebt halt immer eine 0 davor, aber die batch funktioniert., ich nehme an, weil der Dateiname und der Veruzeichnisname nicht mehr identisch sind.
Ich hoffe, es ist rübergekommen, was ich meine und probiert habe. Da ich ein Laie bin und nur rudimentäre Kenntnisse aus alten dos-Zeten habe, komme ich nicht wieter.
Danke und Gruß
Karlooser
Hallo miniversum,
ja genau so. Ich hab' ncoch ein bisschen rumprobiert und krieg mit der Version
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do copy /-Y "%%i\%%j" ..\"%%~ni%%~xj"
rd /s "%%i"
ein Ergebnis. Dadurch dass ich für's Testen die Datei eine Verzeichnis- Ebene weiter kopiert habe, wurde die Datei richtig gespeichert und auch das Verzeichnis gelöscht, aber komischerweise hat es das Verzeichnis selbst nicht gelöscht (?).
Nochmal meine Struktur:
c:\Testordner\Testunterorder\testdatei.doc\Testdatei.doc (den Dateinamen habe ich absichtlich groß geschrieben, dadurch konnte ich erkennen, das die Datei mit dem Verzeichnisname "testdatei.doc" kopiert wurde).
Die Datei wurde mit obiger batch dann nach c:\Testordner kopiert. im Test-Unterordner steht dann noch die batch selbst und der Ordner testdatei.doc ist leer, aber noch da.
Gerne hätte ich die Datei aber im Verzeichnis Test-Unterordner und natürlich das Verzeichnis testdatei.doc gelöscht.
Danke für Deine Hilfe.
Karlooser
ja genau so. Ich hab' ncoch ein bisschen rumprobiert und krieg mit der Version
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do copy /-Y "%%i\%%j" ..\"%%~ni%%~xj"
rd /s "%%i"
ein Ergebnis. Dadurch dass ich für's Testen die Datei eine Verzeichnis- Ebene weiter kopiert habe, wurde die Datei richtig gespeichert und auch das Verzeichnis gelöscht, aber komischerweise hat es das Verzeichnis selbst nicht gelöscht (?).
Nochmal meine Struktur:
c:\Testordner\Testunterorder\testdatei.doc\Testdatei.doc (den Dateinamen habe ich absichtlich groß geschrieben, dadurch konnte ich erkennen, das die Datei mit dem Verzeichnisname "testdatei.doc" kopiert wurde).
Die Datei wurde mit obiger batch dann nach c:\Testordner kopiert. im Test-Unterordner steht dann noch die batch selbst und der Ordner testdatei.doc ist leer, aber noch da.
Gerne hätte ich die Datei aber im Verzeichnis Test-Unterordner und natürlich das Verzeichnis testdatei.doc gelöscht.
Danke für Deine Hilfe.
Karlooser
Wenn deine Batch im Ordner c:\Testordner\ liegt dann soltle es os gehen:
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%j" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%k" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%k"
)
rd /s "%%i"
)
Die Variabelnverteilung wäre dann so:
c:\Testordner\Testunterorder\testdatei.doc\Testdatei.doc
%%i %%j %%k
miniversum
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%j" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%k" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%k"
)
rd /s "%%i"
)
Die Variabelnverteilung wäre dann so:
c:\Testordner\Testunterorder\testdatei.doc\Testdatei.doc
%%i %%j %%k
miniversum
hmmm, leider funktioniert das so gar nicht (kann datei nicht finden und es ist zu sehen, dass %%i noch gelesen wird, dann ist schluss.
hinter dem copy /-y wird noch angezeigt "Testunterordner\%j\%k" "%k" )
)
Datei nicht gefunden
Möchten sie "Testunterordner"löschen (J/N)?
Also werden j und k nicht gelesen. Nach meinem Verständnis (wenn ich in der "alten" batch schau) müsste es auch lauten:
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%j" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%k"
)
rd /s "%%i"
)
dann bin ich zumindest einen Schritt weiter:
hinter dem copy /-y wird noch angezeigt "Testunterordner\testdatei.jpg\%k" "%k" )
)
Datei nicht gefunden
Möchten sie "Testunterordner"löschen (J/N)?
Irgendwie fehlt noch die Datei "Testdatei.jpg" selbst. Die müsste doch an k übergeben werden.
Ich hab's!
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%j"
So wird einwandfrei kopiert!
Nur funktioniert rd /s "%%i/%%j" nicht, wenn nur das Verzeichnis testdatei.jpg gelöscht werden soll.
Gruß Karlooser
hinter dem copy /-y wird noch angezeigt "Testunterordner\%j\%k" "%k" )
)
Datei nicht gefunden
Möchten sie "Testunterordner"löschen (J/N)?
Also werden j und k nicht gelesen. Nach meinem Verständnis (wenn ich in der "alten" batch schau) müsste es auch lauten:
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%j" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%k"
)
rd /s "%%i"
)
dann bin ich zumindest einen Schritt weiter:
hinter dem copy /-y wird noch angezeigt "Testunterordner\testdatei.jpg\%k" "%k" )
)
Datei nicht gefunden
Möchten sie "Testunterordner"löschen (J/N)?
Irgendwie fehlt noch die Datei "Testdatei.jpg" selbst. Die müsste doch an k übergeben werden.
Ich hab's!
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%j"
So wird einwandfrei kopiert!
Nur funktioniert rd /s "%%i/%%j" nicht, wenn nur das Verzeichnis testdatei.jpg gelöscht werden soll.
Gruß Karlooser
ich bin auch ganz schön stolz, habe so ohne Ahnung und mit dos /? -Hilfe die Befehle und Parameter angeguckt und nachvollzogen, was Du so gemacht hat.
eine Kleinigkeit ist noch am Ende der kopiererei muss es auch do copy /-Y "%%i\%%j\%%k" "%%j" sein, weil ich ja den Verzeichnisnamen als neuen Dateinamen haben will.
Noch 'ne Kleinigkeit:
wir überrede ich das rd /s dazu nicht den Testunterordner und alles drunter zu löschen, sondern das Testverzeichnis.
rd /s "%%i" löscht das Testverzeichnis
habe schon rd /s "%%i\%%j" probiert, dakommt aber wollen Sie... Testverzeichnis\%j löschen ? raus.
Hast Du da eine Idee?
Danke und Gruß Karlooser
eine Kleinigkeit ist noch am Ende der kopiererei muss es auch do copy /-Y "%%i\%%j\%%k" "%%j" sein, weil ich ja den Verzeichnisnamen als neuen Dateinamen haben will.
Noch 'ne Kleinigkeit:
wir überrede ich das rd /s dazu nicht den Testunterordner und alles drunter zu löschen, sondern das Testverzeichnis.
rd /s "%%i" löscht das Testverzeichnis
habe schon rd /s "%%i\%%j" probiert, dakommt aber wollen Sie... Testverzeichnis\%j löschen ? raus.
Hast Du da eine Idee?
Danke und Gruß Karlooser
ich bin auch ganz schön stolz, habe so ohne Ahnung und mit dos /? -Hilfe die Befehle und Parameter angeguckt und nachvollzogen, was Du so gemacht hat.
Ja so lernt man es am besten denke ich.eine Kleinigkeit ist noch am Ende der kopiererei muss es auch do copy /-Y "%%i\%%j\%%k" "%%j" sein, weil ich ja den Verzeichnisnamen als neuen Dateinamen haben will.
Achso. Ich dachte die dateien haben schon den richtigen namen. Ja klar dann stimmt es so wie du es hast. Aber sollte das nicht fast egal sein? Ich dachte die Verzeichnissnamen und die Dateinamen wären gleich?: Unterverzeichnis\dateiname.jpg\dateiname.jpgNoch 'ne Kleinigkeit:
wir überrede ich das rd /s dazu nicht den Testunterordner und alles drunter zu löschen, sondern das Testverzeichnis.
wir überrede ich das rd /s dazu nicht den Testunterordner und alles drunter zu löschen, sondern das Testverzeichnis.
Versuchs mal so:
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do copy /-Y "%%i\%%j\%%k" "%%j"
rd /s "%%j"
)
)
miniversum
Hallo miniversum,
Verzeichnislöschen funktioniert bei mir nicht. Es kommt die Frage, Verzeichnis löschen...? und es ist auch der richtige Verzeichnisname. Nur gelöscht wird nichts.
Lösche jetzt von hand. Sonst läuft die batch prima und ich hebe schon das Meiste meines kaputten nero-backups versorgt.
Ich probier nochmal, nur habe dieses WE keine Zeit.
Danke nochmals für Deine Hilfe.
Gruß Karlooser
Verzeichnislöschen funktioniert bei mir nicht. Es kommt die Frage, Verzeichnis löschen...? und es ist auch der richtige Verzeichnisname. Nur gelöscht wird nichts.
Lösche jetzt von hand. Sonst läuft die batch prima und ich hebe schon das Meiste meines kaputten nero-backups versorgt.
Ich probier nochmal, nur habe dieses WE keine Zeit.
Danke nochmals für Deine Hilfe.
Gruß Karlooser
Hallo. Habe diesen Beitrag per google gefunden und find es klasse. Auch wenn ich keinen plan von programmieren habe, hoffe ich das ich vielleicht eine lösung bekomme.
Ich hab folgendes Problem:
Momentan habe ich, aufgrund eines Lehrgangs, sehr viel zu scannen. Ich mache das mit einem Canon-Scanner und Patchseiten. Dadurch wird immer wieder ein neuer Ordner erstellt sobald eine dieser Seiten kommt. Und mir fehlt einfach die nötige Zeit meine Dateien ordentlich umzubenennen.
Habe mir mal diesen Thread durchgelesen und denke das die o. g. Batch-Datei für mich teilweise in Frage kommt. Habe es auch ausprobiert, aber es sind 2 Dinge die anders sein müssten.
Ist es möglich 2 kleine Veränderungen daran vorzunehmen?
Beispiel:
Laufwerk: C:
Ordner: XYZ
Unterordner: AAA bis ZZZ (Anzahl variiert)
Datei im Unterordner: xxxxx####.jpg (Anzahl variiert)
Die neue Datei im Unterordner sollte nach der Umbenennung wie folgt aussehen: AAA####.jpg (Name des Unterordners+Nr.)
In jedem Ordner sollen die *.jpg Dateien im wieder ab 0001 durchnummeriert werden.
Und die umgenannten Dateien sollen auch nicht in ein anderes Verzeichnis kopiert werden, sonder da bleiben wo sie sind.
Vielen Dank schon mal im Voraus.
Gruß xercxes
Ich hab folgendes Problem:
Momentan habe ich, aufgrund eines Lehrgangs, sehr viel zu scannen. Ich mache das mit einem Canon-Scanner und Patchseiten. Dadurch wird immer wieder ein neuer Ordner erstellt sobald eine dieser Seiten kommt. Und mir fehlt einfach die nötige Zeit meine Dateien ordentlich umzubenennen.
Habe mir mal diesen Thread durchgelesen und denke das die o. g. Batch-Datei für mich teilweise in Frage kommt. Habe es auch ausprobiert, aber es sind 2 Dinge die anders sein müssten.
Ist es möglich 2 kleine Veränderungen daran vorzunehmen?
Beispiel:
Laufwerk: C:
Ordner: XYZ
Unterordner: AAA bis ZZZ (Anzahl variiert)
Datei im Unterordner: xxxxx####.jpg (Anzahl variiert)
Die neue Datei im Unterordner sollte nach der Umbenennung wie folgt aussehen: AAA####.jpg (Name des Unterordners+Nr.)
In jedem Ordner sollen die *.jpg Dateien im wieder ab 0001 durchnummeriert werden.
Und die umgenannten Dateien sollen auch nicht in ein anderes Verzeichnis kopiert werden, sonder da bleiben wo sie sind.
Vielen Dank schon mal im Voraus.
Gruß xercxes
Tag zusammen.
Mit dem Batch
@echo off
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj"
rd /s /q "%%i"
)
komme ich schon mal gut zurecht. Vielen Dank dafür.
Könnte man da eventuell noch eine Erweiterung einbauen?
Nehmen wir an, der Hauptordner heisst "Italien 2008" und in diesem Ordner sind beispielsweise zwei Unterordner namens "Woche 1" und "Woche 2" mit je einer Videodatei.
Ist: c:\Italien 2008\Woche 1\video1.wmv und c:\Italien 2008\Woche 2\video2.wmv
Soll: c:\Italien 2008.Woche1.video1.wmv und c:\Italien 2008.Woche2.video2.wmv
Geht das irgendwie?
Vielen Dank schon mal im voraus.
Mit dem Batch
@echo off
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj"
rd /s /q "%%i"
)
komme ich schon mal gut zurecht. Vielen Dank dafür.
Könnte man da eventuell noch eine Erweiterung einbauen?
Nehmen wir an, der Hauptordner heisst "Italien 2008" und in diesem Ordner sind beispielsweise zwei Unterordner namens "Woche 1" und "Woche 2" mit je einer Videodatei.
Ist: c:\Italien 2008\Woche 1\video1.wmv und c:\Italien 2008\Woche 2\video2.wmv
Soll: c:\Italien 2008.Woche1.video1.wmv und c:\Italien 2008.Woche2.video2.wmv
Geht das irgendwie?
Vielen Dank schon mal im voraus.
Ungetestet versuchs mal so:
@echo off
FOR /F "delims=" %%i in ('dir /B /AD') do (
FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj"
rd /s /q "%%i"
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do move /-Y "%%i\%%j\%%k" "%%i.%%j.%%~xk"
rd /s /q "%%i\%%j"
)
)
Versuchs mal damit:
Das problem war dass das Vezeichniss gelöscht wurde bevor es ausgelesen werden konnte.
Teste es damit mal. Das sollte besser gehen.
@echo off
FOR /F "delims=" %%i in ('dir /B /AD') do (
dir "%%i" /B /A-D >NUL 2>NUL && FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj"
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do move /-Y "%%i\%%j\%%k" "%%i.%%j%%~xk"
)
rd /s /q "%%i"
)
Teste es damit mal. Das sollte besser gehen.
Supi. Das klappt wunderbar. Du bist der Beste
Was müsste man noch hinzufügen, wenn man die Batch-Datei in einen Oberorder - sagen wir mal - "Urlaube" positionieren würde? Denn ich hätte da mehrere Hauptordner (Italien 2008 etc.) und müsste dann nicht in jeden Hauptordner die Batch-Datei kopieren und einzeln ausführen.
Vielen Dank erstmal dafür und noch einen schönen Restsonntag.
Was müsste man noch hinzufügen, wenn man die Batch-Datei in einen Oberorder - sagen wir mal - "Urlaube" positionieren würde? Denn ich hätte da mehrere Hauptordner (Italien 2008 etc.) und müsste dann nicht in jeden Hauptordner die Batch-Datei kopieren und einzeln ausführen.
Vielen Dank erstmal dafür und noch einen schönen Restsonntag.
Willst du das diese Unterordner dann auch ALLE verarbeitet werden?
oder nur ein einzelner jeweils?
Fall1: Alle Unterordner verarbeiten:
Fall2: Der ordner der mit der Maus auf die Batch gezogen wird wird verarbeitet:
Bei der ersten Möglichkeit wird davon ausgegangen das die Batch eine Ordnerebene höher liegt. Soll die Batch auch wo ganz anders liegen können kannst du die zweite Zeile so abändern:
oder nur ein einzelner jeweils?
Fall1: Alle Unterordner verarbeiten:
@echo off
FOR /F "delims=" %%a in ('dir /B /AD') do (
pushd "%%i"
call:verarbeite
popd
)
goto:eof
:verarbeite
FOR /F "delims=" %%i in ('dir /B /AD') do (
dir "%%i" /B /A-D >NUL 2>NUL && FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj"
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do move /-Y "%%i\%%j\%%k" "%%i.%%j%%~xk"
)
rd /s /q "%%i"
)
goto:eof
@echo off
pushd "%~1"
call:verarbeite
popd
goto:eof
:verarbeite
FOR /F "delims=" %%i in ('dir /B /AD') do (
dir "%%i" /B /A-D >NUL 2>NUL && FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj"
FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do (
FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do move /-Y "%%i\%%j\%%k" "%%i.%%j%%~xk"
)
rd /s /q "%%i"
)
goto:eof
FOR /F "delims=" %%a in ('dir /B /AD C:\urlaube') do (
Bei der Zweiten Batchdatei ist es egal wo die Batch und der zu verarbeitende Ordner liegt.Zitat von @Andichrist:
Aufbau-Beispiel:
Die Ordner liegen z.B. alle in c:\Temp\
Verzeichnis 1
Datei x.jpg
Datei x.txt
Verzeichnis B
Noch eine Datei z.jpg
Noch eine Datei z.txt
Verzeichnis 3
Eine weitere Datei.jpg
Eine weitere Datei.txt
Als Ergebnis nach dem Batchaufruf sollte im Verzeichnis c:\temp\
nur noch zu finden sein:
Verzeichnis 1.jpg
Verzeichnis 1.txt
Verzeichnis B.jpg
Verzeichnis B.txt
Verzeichnis 3.jpg
Verzeichnis 3.txt
Ideal wäre es, wenn man dies in einer Batch lösen
Aufbau-Beispiel:
Die Ordner liegen z.B. alle in c:\Temp\
Verzeichnis 1
Datei x.jpg
Datei x.txt
Verzeichnis B
Noch eine Datei z.jpg
Noch eine Datei z.txt
Verzeichnis 3
Eine weitere Datei.jpg
Eine weitere Datei.txt
Als Ergebnis nach dem Batchaufruf sollte im Verzeichnis c:\temp\
nur noch zu finden sein:
Verzeichnis 1.jpg
Verzeichnis 1.txt
Verzeichnis B.jpg
Verzeichnis B.txt
Verzeichnis 3.jpg
Verzeichnis 3.txt
Ideal wäre es, wenn man dies in einer Batch lösen
Hallo Zusammen,
nach langem suchen bin ich auf eure Seite gestoßen.
Ich such fast genau so ein Batch (der super funktioniert) , allerdings möchte ich die Ordnerstruktur behalten nach dem umbenennen.
D.h. die Dateien im Unterordner sollen nur nach dem Ordner umbennant werden.
Ist das machbar???
Vielen Dank
Gruß
Marcel2001