Personen, die mit Windows / Dos-Batch-Skripten aus der Ferne vertraut sind, erkennen diese Zeile:
@echo off
Für viele-viele Tage war ich mit dem Gefühl glücklich , dass das @
ist , wie echo off
am Anfang der Partie geschrieben werden sollte und das ist es.
Vor kurzem bin ich jedoch auf eine Linie wie diese gestoßen :
@php foo bar
und eine andere Zeile wie diese:
@call \\network\folder\batch.bat
Dies verstärkte meinen Verdacht, dass @
es mehr als nur einen echo
Moduswechsel gibt. Ist @
jedoch nicht in der Windows XP: Befehlszeilenreferenz AZ aufgeführt, die ich als Referenz zu verwenden versuche, und daher bin ich mir nicht sicher, wie ich endgültige Informationen dazu finden kann:
Was ist das @
Anmelde-Batch, wie lautet die Terminologie dafür und was macht es?
windows
batch-file
dos
terminology
at-sign
n611x007
quelle
quelle
Remarks
Abschnitt desecho
Befehls enthalten.echo
. Hier ist der Link zu Echo # Bemerkungen .Antworten:
Am Symbol - @
Das
@ symbol
weist den Befehlsprozessor an, weniger ausführlich zu sein. um nur die Ausgabe des Befehls anzuzeigen, ohne dass die Ausführung oder die mit der Ausführung verbundenen Eingabeaufforderungen angezeigt werden. Wenn es verwendet wird, wird es dem Anfang des Befehls vorangestellt. Es ist nicht erforderlich, ein Leerzeichen zwischen dem "@" und dem Befehl zu lassen.Wenn "echo" auf "off" gesetzt ist, muss "@" nicht verwendet werden, da dieses Verhalten automatisch eingestellt wird, wenn "echo" auf "off" gesetzt wird. "Echo" ist normalerweise standardmäßig auf "Ein" gesetzt, wenn die Ausführung eines Skripts beginnt. Dies ist der Grund, warum "@echo off" häufig verwendet wird, um das Echo auszuschalten, ohne den Vorgang des Ausschaltens anzuzeigen.
quelle
.bat
Datei ausgeführt wird, dh es funktioniert nicht direkt über die Befehlszeile.When "echo" is set to "off" it is not necessary to use "@" because setting "echo" to "off" causes this behavior to become automatic.
Das ist wahr. Ich habe auch festgestellt, dass dies unerwünschte Nebenwirkungen verursachen kann. Wenn Sie beispielsweise aus irgendeinem Grund@copy
einemclip < file.txt & pause
Befehl folgen , kopiert meine Zwischenablage den Text1 file copied
.Das am Anfang stehende "at" -Symbol verbirgt nicht nur den Befehl, sondern kann auch zum Anhängen von in einer Textdatei gespeicherten Befehlsargumenten verwendet werden. Die Syntax lautet exe @ -Befehle (wenn ich mich richtig erinnere)
quelle
myExe@myCommands
schlägt es fehl mitis not recognized as an internal or external command