Befehlsersetzung durchführen Windows-Eingabeaufforderung

Befehlsersetzung durchführen Windows-Eingabeaufforderung

Wie können Sie Befehlsersetzungen in der Windows-Eingabeaufforderung durchführen?

Die Befehlssubstitution ist ein sehr mächtiges Konzept der UNIX-Shell. Sie wird verwendet, um die Ausgabe eines Befehls in einen zweiten Befehl einzufügen. Beispielsweise mit einer Zuweisung:

$ today=$(date) # starts the "date" command, captures its output
$ echo "$today"
Mon Jul 26 13:16:02 MEST 2004

Dies kann auch mit anderen Befehlen außer Zuweisungen verwendet werden:

$ echo "Today is $(date +%A), it's $(date +%H:%M)"
Today is Monday, it's 13:21

Dadurch wird der Datumsbefehl zweimal aufgerufen, das erste Mal um den Wochentag auszudrucken, das zweite Mal für die aktuelle Uhrzeit.

Ich muss wissen, wie das in der Eingabeaufforderung geht (ich weiß bereits, dass es eine Möglichkeit gibt, so etwas mithilfe von als Teil des forBefehls auszuführen, aber diese Methode ist viel undurchsichtiger und komplizierter).

Antwort1

Unter DOS ist das nicht möglich.

Wenn Sie mit DOS den Windows-Befehlsprozessor meinen, cmd.exekönnen Sie die Ausgabe eines Befehls wie folgt erhalten for /f:

for /f %%x in ('date') do set "today=%%x"

Abhängig von Ihren Anforderungen kann dies etwas komplexer werden.

Antwort2

Wenn Sie eine echte Befehlssubstitution im Unix-Stil wünschen und nicht die eingeschränkteren Möglichkeiten, die Sie mit erhalten cmd.exe, sollten Sie sich eine echte Unix-Shell für Windows zulegen. Zwei davon kann ich empfehlen:Cygwin(kostenlos, versteht aber das Windows-Dateisystem nicht sehr gut) und mein eigenesHamilton C-Schale(kommerziell, aber für Windows geschrieben).

verwandte Informationen