Per Batch Ordner mit bestimmter Benennung suchen und den Inhalt in übergeordneten Ordner verschieben danach Unterordner löschen
Hi Alle,
ich habe ein wenig in eurem Forum "rumgestöbert" und es scheint das hier einige ganz helle köpfe am Werk sind
persönlich ist mein Wissen was Bachdateien angeht sehr sehr mager und ich hoffe ihr könnt mir Helfen.
Ich benutze als Betriebssystem Vista falls es wichtig für euch zu wissen ist.
Ich habe ein entpackprogramm welches selbstständig alle gepackten Dateien entpackt und diese in den Ursprungsordner belässt. Beispiel ich sage Entpacke alles was in D:\ ist in dem Ordner wo sich die rar Files befinden
und lösche danach die rar Dateien.
Beispiel:
D:\Ordner\Ordner\OrdnerA\*.rar
D:\Ordner\Ordner\OrdnerB\*.rar
Zwei der übergeordneten Ordner in denen sich die rars befinden sind immer gleich, nennen wir sie OrdnerA und OrdnerB, diese können mal tiefer in der Verzeichnisstruktur von D:\ sein oder direkt nach zB. D:\
es kann aber auch so aussehen D:\Ordner\Ordner\Ordner\OrdnerA\*.rar
Ich kann dem Entpackprogramm sagen das es eine Datei ausführen soll nachdem der entpackvorgang stattgefunden hat und diese Datei soll dann die Batch sein die ausgeführt wird, deshalb ist es wichtig das sich die batchdatei an einem festen Ort befindet.
Die Batch soll folgendes tun:
suche OrdnerA in der gesamten Struktur d:\ und verschiebe Inhalt von OrdnerA in den darüberliegenden Ordner und lösche OrdnerA
suche OrdnerB in der gesamten Struktur d:\ und verschiebe Inhalt von OrdnerB in den darüberliegenden Ordner und lösche OrdnerB
ich hoffe ihr habt das einigermaßen verstanden...
Gruß und Danke
ich habe ein wenig in eurem Forum "rumgestöbert" und es scheint das hier einige ganz helle köpfe am Werk sind
persönlich ist mein Wissen was Bachdateien angeht sehr sehr mager und ich hoffe ihr könnt mir Helfen.
Ich benutze als Betriebssystem Vista falls es wichtig für euch zu wissen ist.
Ich habe ein entpackprogramm welches selbstständig alle gepackten Dateien entpackt und diese in den Ursprungsordner belässt. Beispiel ich sage Entpacke alles was in D:\ ist in dem Ordner wo sich die rar Files befinden
und lösche danach die rar Dateien.
Beispiel:
D:\Ordner\Ordner\OrdnerA\*.rar
D:\Ordner\Ordner\OrdnerB\*.rar
Zwei der übergeordneten Ordner in denen sich die rars befinden sind immer gleich, nennen wir sie OrdnerA und OrdnerB, diese können mal tiefer in der Verzeichnisstruktur von D:\ sein oder direkt nach zB. D:\
es kann aber auch so aussehen D:\Ordner\Ordner\Ordner\OrdnerA\*.rar
Ich kann dem Entpackprogramm sagen das es eine Datei ausführen soll nachdem der entpackvorgang stattgefunden hat und diese Datei soll dann die Batch sein die ausgeführt wird, deshalb ist es wichtig das sich die batchdatei an einem festen Ort befindet.
Die Batch soll folgendes tun:
suche OrdnerA in der gesamten Struktur d:\ und verschiebe Inhalt von OrdnerA in den darüberliegenden Ordner und lösche OrdnerA
suche OrdnerB in der gesamten Struktur d:\ und verschiebe Inhalt von OrdnerB in den darüberliegenden Ordner und lösche OrdnerB
ich hoffe ihr habt das einigermaßen verstanden...
Gruß und Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140050
Url: https://administrator.de/forum/per-batch-ordner-mit-bestimmter-benennung-suchen-und-den-inhalt-in-uebergeordneten-ordner-verschieben-danach-140050.html
Ausgedruckt am: 22.04.2025 um 15:04 Uhr
13 Kommentare
Neuester Kommentar
Hallo @Reedix,
gibst du uns auch noch den namen deines 'entpackprogrammes'?
ich nehme mal stark an, es ist WinRAR. Aber auf Nummer sicher gehen ist nie schlecht
gruß
Snow
gibst du uns auch noch den namen deines 'entpackprogrammes'?
ich nehme mal stark an, es ist WinRAR. Aber auf Nummer sicher gehen ist nie schlecht
gruß
Snow
Moin Reedix,
willkommen im Forum.
Ergänzend zu Snowman25 noch die Nachfrage
Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu durchsuchen....
Grüße
Biber
willkommen im Forum.
Ergänzend zu Snowman25 noch die Nachfrage
Ich kann dem Entpackprogramm sagen das es eine Datei ausführen soll nachdem der entpackvorgang stattgefunden
?? Kann beim Aufruf durch das Entpackprogramms denn auch der Ordnername/der name der gerade abgefackelten *.rar Archivs als Parameter übergeben werden?Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu durchsuchen....
Grüße
Biber
Zitat von @Biber:
Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu
durchsuchen....
Denn es mach ja wenig Sinn, bei jedem Nachklapp-Entpackprogramm-Folgebatch immer die ganze Platte nach allen *.rar-Files zu
durchsuchen....
Ich bastel trotzdem grade sowas...
zwischenstand:
dir D:\*.rar /A:-D /B /S>rarlist.list
Da du ja die .rar-Dateien immer sofort nach dem (erfolgreichen) entpacken löscht, sollte hier nicht zu viel drinstehen.
for /F "delims=" %%p in (rarlist.list) do (
del %%~pP
und jetzt hab ich keine lust mehr..
sachma....
HiX hat doch all die Funktionen die du brauchst. Wozu da noch i-was hintendranschieben?
besorg dir mal die neueste Version (hier), stell die Sprache auf Deutsch und dann dürftest du die ganzen optionen verstehen.
Gruß
Snow
HiX hat doch all die Funktionen die du brauchst. Wozu da noch i-was hintendranschieben?
besorg dir mal die neueste Version (hier), stell die Sprache auf Deutsch und dann dürftest du die ganzen optionen verstehen.
Gruß
Snow
Hallo Reedix und, mit etwas Verspätung, willkommen im Forum!
Was Snowman25 meinte (und mit "HiX" auch möglich sein dürfte), ist, gleich beim Entpacken als Ziel den übergeordneten Ordner anzugeben - notfalls mit ".."
Außerdem hätte ich, wie Biber, auch angenommen, dass "HiX" den Pfad zu den entpackten Dateien kennt und daher zumindest diesen an den Batch übergeben könnte, ohne erst auf dem ganzen Laufwerk nach dem jeweiligen Ordner suchen zu müssen ...
Um aber trotzdem einen Ansatz für die ursprüngliche Problemstellung anzubieten:
Damit Du entspannt testen kannst, steht vor dem Verschiebe- bzw Löschbefehl jeweils ein "
Anzumerken wäre noch, dass, sobald Du das "
Grüße
bastla
Was Snowman25 meinte (und mit "HiX" auch möglich sein dürfte), ist, gleich beim Entpacken als Ziel den übergeordneten Ordner anzugeben - notfalls mit ".."
Außerdem hätte ich, wie Biber, auch angenommen, dass "HiX" den Pfad zu den entpackten Dateien kennt und daher zumindest diesen an den Batch übergeben könnte, ohne erst auf dem ganzen Laufwerk nach dem jeweiligen Ordner suchen zu müssen ...
Um aber trotzdem einen Ansatz für die ursprüngliche Problemstellung anzubieten:
@echo off & setlocal
for /f "delims=" %%i in ('dir /s /b /ad D:\OrdnerA D:\OrdnerB') do (echo move "%%i\*.*" "%%~dpi" && echo rd /s /q "%%i")
echo
" - solange das dort ist, wird der Befehl nur angezeigt, aber nicht ausgeführt.Anzumerken wäre noch, dass, sobald Du das "
echo
" vor dem "move
" entfernt hast, auf Teufel komm raus verschoben wird - falls es im übergeordneten Ordner bereits eine gleichnamige Datei gibt, wird diese kommentarlos überschrieben - daher noch die Frage: Ist mit einer solchen Namensgleichheit zu rechnen, und wenn ja, wie soll dann verfahren werden?Grüße
bastla
Hallo Reedix!
Zu 1.:
Zu 2.: Das Löschen wird durch das "
Zu 3.: Falls doch der Bedarf auftauchen sollte, unmittelbar in Root liegende Ordner anzusprechen, sollte das so gehen:
Hinsichtlich der Übergabe des Pfades duch "HiX": In diesem Fall könnte der Batch (wieder mit den "Sicherheits-
Grüße
bastla
Zu 1.:
Zu 2.: Das Löschen wird durch das "
echo
" vor dem "rd
" verhindert - also auch entfernen ...Zu 3.: Falls doch der Bedarf auftauchen sollte, unmittelbar in Root liegende Ordner anzusprechen, sollte das so gehen:
for /f "delims=" %%i in ('dir /s /b /ad D:\ 2^>nul^|findstr /e "\\OrdnerA \\OrdnerB"') do (echo move "%%i\*.*" "%%~dpi" && echo rd /s /q "%%i")
echo
s") so aussehen:@echo off & setlocal
echo move "%~1\*.*" "%~dp1" && echo rd /s /q %1
bastla
Hallo Reedix!

- allerdings wird das Programm vermutlich ohnehin eher den Pfad zur ".rar"-Datei übergeben - dann müsste der Batch etwas anders aussehen:
Falls allerdings der Batch tatsächlich aus dem "OrdnerA" heraus gestartet würde, sollte sich das Ganze etwa so
machen lassen.
Grüße
bastla
der löscht aber nur die Ordner die gerade angesprochen werden und nicht auf der ganzen platte d: oder?
Da ja durch die Schleife alle passenden Ordner auf der gesamten Platte D: gesucht werden, ist diese Frage nur mit "ja - doch" zu beantworten. ich habe es mal direkt im OrdnerA testweise ausgeführt
Wenn Du (und nicht das Programm) das machst, musst Du dem Batch auch den Pfad als Parameter mitliefern - der Aufruf müsste dann also etwa so aussehen:Verschieben.cmd D:\Ordner\Ordner\OrdnerA
@echo off & setlocal
pushd "%~dp1"
move *.* .. || (popd & goto :eof)
popd
echo rd /s /q "%~dp1"
@echo off & setlocal
move *.* .. || goto :eof
set "Ordner=%cd%"
cd \
echo rd /s /q "%Ordner%"
Grüße
bastla