Gibt es eine Windows-äquivalente Syntax, um einen Befehl innerhalb eines anderen Befehls in einer Bat-Skriptdatei auszuführen?Windows Bat-Alternative für Bash Inline-Befehl
In Linux können Sie einfach $(...) oder `` verwenden.
Gibt es eine Windows-äquivalente Syntax, um einen Befehl innerhalb eines anderen Befehls in einer Bat-Skriptdatei auszuführen?Windows Bat-Alternative für Bash Inline-Befehl
In Linux können Sie einfach $(...) oder `` verwenden.
Ja, zumindest für einfache Dinge:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f %%w in ('echo xyzzy') do set var=%%w
echo Output is %var%
endlocal
Die Ausgabe des Skripts ist:
Output is xyzzy
mit dem xyzzy
vom echo
Befehl kommt.
Die Ausführung von for /?
über ein Befehlsfenster sollte Ihnen eine umfassendere Liste von Optionen bieten.
Ich denke, das wird von 'for-in' Konstrukt nicht intern von Windows-Kommandozeilen-Engine behandelt. In meinem Fall scheint es nicht zu funktionieren: http://stackoverflow.com/questions/11828801/imagmagick-how-to-add-a-gradient-splice-to-an-image-using-one-convert-command/11864792 # 11864792 – Mohsen
@Moshen, 'für' ist der einzige Weg, wie ich denke, dass Sie das tun können. Selbst 'bash' führt den Code nicht mit' $() 'aus, sondern ersetzt einfach die Standardausgabe eines anderen Prozesses. Das ist nicht anders, als es in einer Umgebungsvariablen zu speichern und dann diese Variable zu verwenden, wie in meiner Antwort. – paxdiablo
@Mohsen - FOR ist ein interner Befehl, also wird es definitiv von der Kommandozeilen-Engine gehandhabt. – dbenham
Windows .bat-Dateien sind ein historischer Rückfall, warum installieren Sie stattdessen nicht Perl? – cdarke
Batchdateien haben immer noch einen Platz - z. B. wenn Sie einen Teil eines Installationsskripts ausführen müssen. Sie können nicht davon ausgehen, dass Perl auf dem System des Benutzers installiert wird. –