@EXECSTR[[n,]Befehl] : Führt den angegebenen Befehl aus und gibt die Zeile n (oder die erste Zeile, wenn n nicht angegeben ist) zurück , die vom Befehl auf stdout geschrieben wurde . Zum Beispiel die dritte Zeile, die von VER /R zurückgegeben wird:
echo %@execstr[2,ver /r]
Wenn n negativ ist, beginnt @EXECSTR bei der letzten Zeile und zählt rückwärts.
@EXECSTR ist nützlich, um ein Ergebnis von einem externen Dienstprogramm abzurufen. Wenn Sie zum Beispiel ein externes Dienstprogramm namens NETTIME.EXE haben , das die Uhrzeit von Ihrem Netzwerkserver abruft und auf die Standardausgabe schreibt, können Sie es mit einem Befehl wie diesem in einer Umgebungsvariablen speichern:
set server_time=%@execstr[d:\path\nettime.exe]
Wenn dasselbe Dienstprogramm ein für den TIME-Befehl richtig formatiertes Ergebnis zurückliefert, können Sie es auch zum Einstellen der Uhrzeit auf Ihrem System verwenden:
time %@execstr[d:\path\nettime.exe]
@EXECSTR kann auch mit internen Befehlen verwendet werden:
echo Newest file is: %@execstr[*dir /a:-d /h /o:-d /f]
@EXECSTR beinhaltet mehrere umfangreiche interne Verarbeitungsschritte. Möglicherweise können Sie komplexere Befehlssequenzen (Pipes, Befehlsgruppen usw.) als Parameter verwenden, doch sollten Sie dies vorhersorgfältig testen , da die Ergebnisse nicht immer den Erwartungen entsprechen. Wir empfehlen Ihnen, nur einen einzigen Befehlsparameter (intern, extern, Batch-Datei usw.) zu verwenden.
Siehe auch: _EXECSTR, @EXEC und @EXECARRAY.