![Befehlsersetzung durchführen Windows-Eingabeaufforderung](https://rvso.com/image/1336275/Befehlsersetzung%20durchf%C3%BChren%20Windows-Eingabeaufforderung.png)
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 2004Dies 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:21Dadurch 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 for
Befehls 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.exe
kö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).