Was bedeutet die Zeichen ^ bedeutet in Batch Skript?
In diesem Befehl:
FOR /F %%A IN ('TYPE "%InFile%"^|find /v /c ""')DO SET "Till=%%A"
was bedeutet die ^
bedeuten?
- Es kann auch ein escape-Zeichen, obwohl ich bin mir nicht sicher über seine Verwendung hier. robvanderwoude.com/escapechars.php
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem ^ - symbol (auch als caret oder Zirkumflex) ist ein escape-Zeichen im Batch-Skript. Wenn es verwendet wird, das nächste Zeichen wird interpretiert als ein gewöhnlicher Charakter.
In Ihrem Skript die Ausgabe des TYPE-Befehls geschrieben werden als Eingabe an den Befehl "SUCHEN".
Wenn Sie nicht, verwenden Sie das escape-Zeichen ^ vor der
|
, dann die reguläre Bedeutung der|
ist ein pipe-Zeichen.Den Dokumentation sagt:
Den Cursor '^' Charakter dient zwei Zwecke in die Windows-batch-Dateien:
1. Zeilenfortsetzungen:
~~~
~~~~
Ergebnisse in dir /ad c:\temp die listet nur die Verzeichnisse in C:\temp.
2. Flucht reserviert shell-Zeichen & | < > ^.
Verwendung eines vorausgehenden caret-Zeichen zu entkommen und drucken der Zeichen:
Unendliche Rekursion beschreibt das Allgemeine Verhalten von
^
, aber ist ein bisschen unscharf, warum müssen Sie es innerhalbIN ('yourCommand')
.yourCommand
tatsächlich ausgeführt wird, implizit in seinem eigenen CMD.EXE Prozess mitC:\Windows\system32\cmd.exe /c yourCommand
. Offensichtlich ist das Rohr muss in den Befehl aufgenommen werden, in Ihrem Fall. Aber die gesamte Zeile muss analysiert werden, indem die batch-parser, bevor es passieren kann das IN () - Klausel an, um ausgeführt zu werden. Ohne die^
, die|
verwirrt die batch-parser. Die^
entweicht (schützt) das Rohr während der ersten batch-Analyse.