Cmd: Datei mit Wildcard im Namen ausführen?

Basinator

Lt. Junior Grade
Registriert
Jan. 2009
Beiträge
270
In meinem Ordner liegt:
Std SW kopieren.bat

In der CMD kann ich diese mit dem vollen Namen ausführen:
"Std SW install.bat"

Mit Wildcard (Asterix*) aber nicht:
"Std SW install.b*"

Bin ich oder das System eindeutig zu blöd? Im Normalfall tendiere ich ja zu mir selbst.
Und was gibt es für andere, einfache Möglichkeiten?

Was möchte ich tun? Ich möchte silent-Installer-Batches schreiben, um uns die Arbeit zu verkürzen. Das Problem ist aber, dass manche Installer aufgrund von einer neueren Version einen anderen Dateinamen erhalten - das möchte ich gerne abfangen (im Optimalfall automatisch nur neuste Version ausführen, alternativ auch die erste mit der Wildcard gefundene)
 
Du kannst nicht per Wildcard ausführen. Vorher auflisten, einzeln ausführen.

PS: Asterisk, nicht Asterix. Oder nenn es auf gut deutsch einfach Stern(chen).
 
finde er den analogen Befehl zu linux:

for i in 'ls -1 /verzeichnis/install.b*`; do Std SW $i; done;

Oder auch:
Schleife die einen Verzeichnisinhalt auflistet und sämtliche Funde wie gewünscht ausführt.
Wenn du nicht wildcarden kannst, mache ne Liste in ne Textdatei oder so, die deine Schleife dann durchwuselt...
 
Du kannst nicht per Wildcard ausführen. Vorher auflisten, einzeln ausführen.
Wie wäre da die Vorgehensweise, evtl. die Befehle?
Sofern möglich - keine all zu große Erfahrung mit Batch-Dateien - auflisten, "irgendwie" in Var schreiben und dann versuchen, die Datei mit Inhalt der Var auszuführen? Nun wäre wohl die Frage - Wie bekomme ich auf der Auflistung die passende (höchste Version des Setups) in die Var? Wobei, es "reicht" zur Not auch, einen einzigen Treffer zu finden und den Ordner eben bei jeder Setup-Aktualisierung kurz aufzuräumen.
Andreas_ schrieb:
CMD gehört eben nicht zu den Befehlen, bei denen Wildcards erlaubt sind ...
https://ss64.com/nt/syntax-wildcards.html
Jup. Leider, denn es wäre ja einfach zu sagen, dass nur genau bei einem Treffer ausgeführt werden darf. Meine auch, dass das bei Linux durchaus geht.
Hatte es auch mit der ~Tilde probiert, leider ohne Erfolg.

Vielen Dank für die Antworten!
 
Ein * (oder auch das ?) definieren im Zweifelsfall mehrere Dateien - und ein einzelner Aufruf kann eben nur ein Programm auslösen.
Wohlgemerkt, Programm = Datei, kein Parameter (der auch Programme umfassen kann).

CN8
 
cumulonimbus8 schrieb:
Wohlgemerkt, Programm = Datei, kein Parameter (der auch Programme umfassen kann).
Der Dateiname stellt hier nur einen Parameter dar.
Der Aufruf "Std SW install.bat" ist im Normalfall dasselbe wie CMD /c "Std SW install.bat". Wie schon weiter oben geschrieben, erlaubt CMD keine Wildcards bei Parametern.
 
Konnte das ganze dann lösen, indem ich den DIR-Output in eine Datei geschrieben habe und dann den Var-Inhalt aus dieser zugewiesen habe. Funktioniert - zumindest, solange es nur einen Treffer (Installationsdatei) gibt.

Vielen Dank für die Hilfe!
 
Schau dir mal die Hilfe zur FOR und IF an, da kann DIR auch einen Schwung Files liefern den man abarbeiten kann.
CN8
 
Zurück
Oben