Unterschied zwischen% Variable% und! Variable! in der Stapeldatei
Schreibe ich eine batch-Datei wo muss ich die Ausgabe ein string mit '!' zu einer anderen Datei. Aber wenn ich echo, die Zeichenfolge in eine andere Datei, die Sie entfernt das "!" aus der Ausgabe.
ZB:
Eingang:
set LINE=Hi this is! output
echo !LINE!>>new_file.txt
Ausgang new_file.txt ist:
Hi this is output
Auch, wenn der Eingang ist
set LINE=Hello!! this is output!!
echo !LINE!>>new_file.txt
Ausgang new_file.txt:
Hello
Daher, es überspringt ! (Ausrufezeichen) aus der Ausgabe der new_file.
Wenn ich verwenden, %ZEILE%, dann zeigt es lediglich "echo ist on", um der output-Datei.
Bitte einen Weg vorschlagen, um dieses problem zu überwinden.
InformationsquelleAutor der Frage Vishal | 2013-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie aktiviert verzögerte Erweiterung und ausgeben wollen, ein Ausrufezeichen, die Sie benötigen, um es zu entkommen.
Flucht Ausrufezeichen braucht keine, eine oder zwei carets je nach Platzierung.
Den Unterschied zwischen
!var!
und%var%
in Blöcken erklärt wird, auf DOS-batch: Warum sind meine set-Befehle wodurch nichts immer gespeichert?Einer Erklärung der batch-parser finden Sie unter Wie funktioniert die Windows-Kommando-Interpreter (CMD.EXE) analysieren Skripts?
InformationsquelleAutor der Antwort jeb
Es scheint, Sie haben genannt
SETLOCAL EnableDelayedExpansion
irgendwo höher in den code. Werfen Sie einen Blick hierum zu sehen, was die Auswirkungen sind.InformationsquelleAutor der Antwort Ivaylo Strandjev