noobstar0815
Goto Top

Wie öffne ich alle Dateien in einem Ordner per Batch-Datei?

Guten morgen,
ich arbeite an einer Batch-Datei zum schnelleren Updaten der Rechner. Diese ist soweit auch fertig. Es sieht nun so aus, dass ich die aktuellen Updates in eigenen Ordnern auf dem Server speicher und die älteren wieder lösche. Das heißt Java hat einen eigenen Ordner auf dem Server wo sich nur das aktuelle Update drin befindet. Meine Batch-Datei ruft eine 2. Batch-Datei auf, welche die Datei aus dem Java-Ordner aufruft. Ich habe dies mit einer 2. Batch-Datei gemacht, da es für meine Zwecke Wartungssparsamer ist. Jetzt möchte ich es noch weiter vereinfachen, in dem ich, da nur eine Datei in dem Ordner ist, alle Dateien starten möchte die sich in dem Ordner befinden. Leider weiß ich nicht wie dies funktioniert, hatte gehofft es geht einfach mit call VERZEICHNIS\*.exe z.B. allerdings funktioniert dies nicht. Könnt ihr mir evtl weiter helfen?
MfG Noobstar0815

Content-ID: 203111

Url: https://administrator.de/forum/wie-oeffne-ich-alle-dateien-in-einem-ordner-per-batch-datei-203111.html

Ausgedruckt am: 28.12.2024 um 14:12 Uhr

B4DschK4Pp
B4DschK4Pp 11.03.2013 um 11:16:58 Uhr
Goto Top
Hi,

habe neulich schon mal so was ähnliches gehabt. (Batch job für das Kopieren und Umbenennen von Bildern)

Könnte man ja quasi umschreiben. Sprich
set "Quelle=c:\quelle"  
set FileExtension=exe

for /f "tokens=*" %%f in ('dir /b %PathA%\*.%FileExtension%') do (  
	"%PathA%\%%f")  

Das sollte jedes File, mit der oben angegebenen FileExtension, im Ordner (bei Quelle angegeben) ausführen. Habs aber nicht ausprobiert. ;)

Gruß
Noobstar0815
Noobstar0815 11.03.2013 um 11:24:41 Uhr
Goto Top
Funktioniert leider nicht. Aber ist das mit *.%FileExtension% nicht das gleich als wenn ich direkt *.exe angeben würde, was er ja auch nicht starten will? :D
Um noch mal genauer zu werden, ich muss damit .exe und .msi starten, allerdings aus verschiedenen Ordnern, das heißt es können gerne auch 2 Funktionen sein. Leider fällt mir nicht ein wie es funktioniert und /? call oder google helfen mir auch nicht :/
Noobstar0815
Noobstar0815 11.03.2013 um 11:28:32 Uhr
Goto Top
Das traurige ist, dass ich es mit html hinbekommen würde -.-
B4DschK4Pp
B4DschK4Pp 11.03.2013 um 13:29:51 Uhr
Goto Top
Ja, konnte nicht funktionieren. Die Variable war falsch.
Das klappt jetzt bei mir zumindest:

set "Quelle=c:\quelle"  
set FileExtension=exe

for /f "tokens=*" %%f in ('dir /b %Quelle%\*.%FileExtension%') do (  
	"%Quelle%\%%f")  
Noobstar0815
Noobstar0815 11.03.2013 um 13:38:35 Uhr
Goto Top
Ok auf die falsche Variable hätte ich auch selbst drauf kommen können *facepalm*
Leider funktioniert es immer noch nicht. Ich habe mir einen Ordner Test auf dem Desktop erstellt mit einer .cmd dort drin.
Als Code habe ich dann
set "Quelle=C:\Dokumente und Einstellungen\Software-admin\Desktop\test\"  
set FileExtension=cmd

for /f "tokens=*" %%f in ('dir /b %Quelle%\*.%FileExtension%') do (   
	"%Quelle%\%%f")  
Habe ich dort einen Fehler drin?
Ist es denn überhaupt möglich 1. mit einer Batch-Datei eine .cmd zu öffnen? Müsste gehen, aber sicher bin ich mir da nicht. und 2. Alles Dateien aus einem Ordner öffnen egal welche Endung es ist? Weil dieser Beitrag wurde jetzt schon 125 mal aufgerufen :/
Noobstar0815
Noobstar0815 11.03.2013 um 13:49:30 Uhr
Goto Top
OK habs geschafft.
@for %%f in ("C:\Dokumente und Einstellungen\Software-admin\Desktop\test\*.*") do start "" "%%f"  
So läufts, wo bei dem anderen der Fehler war weiß ich leider nicht.
B4DschK4Pp
B4DschK4Pp 11.03.2013 um 13:53:03 Uhr
Goto Top
Wahrscheinlich beim Leerzeichen im Pfad.
106543
106543 11.03.2013 um 13:56:14 Uhr
Goto Top
Hi,

irre ich mich oder müsste es nicht:
set Quelle="C:\Dokumente und Einstellungen\Software-admin\Desktop\test\"   
heißen und nicht
set "Quelle=C:\Dokumente und Einstellungen\Software-admin\Desktop\test\"   
? oder hab ich jetzt nen Riesen-Denkfehler drin?

Grüße
Exzellius
Noobstar0815
Noobstar0815 11.03.2013 um 14:18:08 Uhr
Goto Top
Wie gesagt, dass weis ich nicht. Allerdings funktioniert
@for %%f in ("C:\Dokumente und Einstellungen\Software-admin\Desktop\test\*.*") do start "" "%%f"  
Jetzt ist aber mein Problem, dass die Datei, welche gestartet wird, eine .msi ist, und diese still installiert werden soll. Wie schaffe ich dies? Mit
@for %%f in ("G:\BDR-Benutzer\Ausbildung\automatischeUpdateswoechentlich\Adobe Flash Player Plug-In\*.*") do start /K "" "%%f" msiexec.exe /i /qn   
jedenfalls nicht. Das /K habe ich gesetzt, weil mein cmd mir mit help start einen sinnvollen Tipp gab, aber cmd kennt /K nicht bzw sagt es sei ungültig. Setze ich statt /k /i ein, startet die msi, allerdings nicht still. Ersetze ich start durch msiexec.exe /i /qn funktioniert gar nichts mehr :D Das /qn wird generell immer entweder ignoriert oder als Fehler angegeben. Könnt ihr mir sagen wie es funktioniert?
B4DschK4Pp
B4DschK4Pp 11.03.2013 um 14:48:52 Uhr
Goto Top
Du könntest in der Schleife, anhand eines if prüfen, ob es sich um ein msi handelt und dann ein
Dein Aufruf kann gar nicht funktionieren, weil die Syntax falsch ist.
Du kannst nicht das msi angeben, dann ein msiexec machen, sondern musst ein msiexec.exe /i "Pfad\zur\deiner.msi" /qn

"%windir%\System32\msiexec.exe" /i "%Quelle%\%%f" /qn  
Noobstar0815
Noobstar0815 11.03.2013 um 15:07:20 Uhr
Goto Top
Ok also
@for %%f in ("G:\BDR-Benutzer\Ausbildung\automatischeUpdateswoechentlich\Adobe Flash Player Active X\*.*") do start /wait "" "%%f" /qn   
funktionier, er wartet bis sich das Programm beendet hat und installiert still. Genau wie ich es wollte hehe :D Denke mal jetzt ist
Thread closed :D
Danke für eure Hilfe
andimue
andimue 11.03.2013 um 15:09:00 Uhr
Goto Top
Zitat von @106543:
Hi,

irre ich mich oder müsste es nicht:
> set Quelle="C:\Dokumente und Einstellungen\Software-admin\Desktop\test\"   
> 
heißen und nicht
> set "Quelle=C:\Dokumente und Einstellungen\Software-admin\Desktop\test\"   
> 
? oder hab ich jetzt nen Riesen-Denkfehler drin?

Grüße
Exzellius

Hi Exzellius,

es kommt darauf an, was du haben willst:

set x="a b c"  
Ergebnis:
x="a b c"  

set "x=a b c"  
Ergebnis:
x=a b c


Gruß
Andi