Programm in allen Unterverzeichnissen ausführen
Servus, liebe Gemeinde!
Da mir hier schonmal so freundlich und kompetent geholfen wurde, wende ich mich nochmals mit einer Batch-Frage an Euch.
Folgende Ausgangssituation: ich habe über 800 Unterverzeichnisse, in denen jeweils ein mit ECM gepacktes ISO ist. Zum Entpacken benutze ich das Programm "unecm.exe". Ich will das nun automatisieren, so daß die jeweilige ECM-Datei entpackt wird, nach erfolgreichem (!) Entpacken die ECM-Datei gelöscht wird und es dann im nächsten Unterverzeichnis weitergeht. Vielleicht nochmal zur Veranschaulichung die Filestruktur:
unecm.exe
Verzeichnis 1\iso1.iso.ecm
Verzeichnis 2\iso2.iso.ecm
Verzeichnis 3\iso3.iso.ecm
Verzeichnis 4\iso4.iso.ecm
...
nach dem Entpacken:
unecm.exe
Verzeichnis 1\iso1.iso
Verzeichnis 2\iso2.iso
Verzeichnis 3\iso3.iso
Verzeichnis 4\iso4.iso
...
Es kann sein, daß unecm.exe in jedes Verzeichnis verschoben/kopiert werden muß - keine Ahnung, das sehe ich erst bei ausprobieren der Batchdatei.
Vielen Dank im voraus!
Da mir hier schonmal so freundlich und kompetent geholfen wurde, wende ich mich nochmals mit einer Batch-Frage an Euch.
Folgende Ausgangssituation: ich habe über 800 Unterverzeichnisse, in denen jeweils ein mit ECM gepacktes ISO ist. Zum Entpacken benutze ich das Programm "unecm.exe". Ich will das nun automatisieren, so daß die jeweilige ECM-Datei entpackt wird, nach erfolgreichem (!) Entpacken die ECM-Datei gelöscht wird und es dann im nächsten Unterverzeichnis weitergeht. Vielleicht nochmal zur Veranschaulichung die Filestruktur:
unecm.exe
Verzeichnis 1\iso1.iso.ecm
Verzeichnis 2\iso2.iso.ecm
Verzeichnis 3\iso3.iso.ecm
Verzeichnis 4\iso4.iso.ecm
...
nach dem Entpacken:
unecm.exe
Verzeichnis 1\iso1.iso
Verzeichnis 2\iso2.iso
Verzeichnis 3\iso3.iso
Verzeichnis 4\iso4.iso
...
Es kann sein, daß unecm.exe in jedes Verzeichnis verschoben/kopiert werden muß - keine Ahnung, das sehe ich erst bei ausprobieren der Batchdatei.
Vielen Dank im voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 311199
Url: https://administrator.de/forum/programm-in-allen-unterverzeichnissen-ausfuehren-311199.html
Ausgedruckt am: 22.01.2025 um 10:01 Uhr
8 Kommentare
Neuester Kommentar
Don't know the tool, but try this.(change paths)
Regards
@echo off
for /f "delims=" %%a in ('dir /b /s /a-d "c:\RootFolder\*.ecm"') do (
"c:\tools\unecm.exe" "%%a" && del "%%a"
)
Moin Rotnasenkater,
ergänzend zu highloads Skizze würde ich noch zusätzlich mit PushD/PopD jeweils in das Verzeichnis wechseln, in dem die Quell-*.ecm-Datei liegt.
Andernfalls sind evtl hinterhr alle *.iso-Dateien in dem Ordner, in dem du die Batch gestarttet hast.
Grüße
Biber
[Edit] Kommentar hat sich mit deiner Antwort überschnitten. Also bitte ignorieren. [/Edit]
ergänzend zu highloads Skizze würde ich noch zusätzlich mit PushD/PopD jeweils in das Verzeichnis wechseln, in dem die Quell-*.ecm-Datei liegt.
Andernfalls sind evtl hinterhr alle *.iso-Dateien in dem Ordner, in dem du die Batch gestarttet hast.
@echo off
for /f "delims=" %%a in ('dir /b /s /a-d "c:\RootFolder\*.ecm"') do (
PushD "%%~dpa"
"c:\tools\unecm.exe" "%%a" && del "%%a"
PopD
)
Grüße
Biber
[Edit] Kommentar hat sich mit deiner Antwort überschnitten. Also bitte ignorieren. [/Edit]
Moin Rotnasenkater,
auch die von mir ergänzte Variante sollte funktionieren - kenne jetzt keine Version Win 7 oder höher, die PushD/PopD nicht kennt.
Habe gerade noch folgende FOR-Konstruktion am Cmd-Prompt (Win 7) getestet:
In diesem PoC ist dein "c:\Start\Mir\Mein\ProgrammXY.exe" ersetzt durch ein
Wüsste nicht, was noch fehlt/schiefläuft.
Grüße
Biber
auch die von mir ergänzte Variante sollte funktionieren - kenne jetzt keine Version Win 7 oder höher, die PushD/PopD nicht kennt.
Habe gerade noch folgende FOR-Konstruktion am Cmd-Prompt (Win 7) getestet:
for /f "delims=" %a in ('dir /b /s /a-d "K:\temp\*.txt"') do @pushD "%~dpa" & cd & PopD
cd
. und es wird mir jeweils das richtig gesetzte Verzeichnis angezeigt.Wüsste nicht, was noch fehlt/schiefläuft.
Grüße
Biber
You did it absolutely wrong, have a sharp look at your commandline in the screenshot!!
This is absolutely not the line above
This line is for executing it directly on the commandline (entering it manually in the console):
You see the "single percent signs %".
Inside a batch file you must double those:
So it's only a matter of your "precision"
Regards
This is absolutely not the line above
This line is for executing it directly on the commandline (entering it manually in the console):
for /f "delims=" %a in ('dir /b /s /a-d "d:\temp\*.txt"') do @pushD "%~dpa" & cd & PopD
Inside a batch file you must double those:
for /f "delims=" %%a in ('dir /b /s /a-d "d:\temp\*.txt"') do @pushD "%%~dpa" & cd & PopD
So it's only a matter of your "precision"
Regards