Ik zag dat @
in dergelijke contexten wordt gebruikt:
@echo off
@echo start eclipse.exe
Wat betekent @
hier?
Antwoord 1, autoriteit 100%
Het betekent dat u de betreffende opdracht niet uitvoert. Vergelijk de volgende twee batchbestanden:
@echo foo
en
echo foo
De eerste heeft alleen foo
als uitvoer terwijl de laatste afdrukt
H:\Stuff>echo foo
foo
(hier tenminste). Zoals te zien is, is het commando dat wordt uitgevoerd ook zichtbaar.
echo off
schakelt dit uit voor het volledige batchbestand. De echo off
-aanroep zelf zou echter nog steeds zichtbaar zijn. Daarom zie je @echo off
aan het begin van batchbestanden. Schakel commando echo uit enherhaal het commando niet om het uit te zetten.
Het verwijderen van die regel (of er commentaar op geven) is vaak een handig hulpmiddel bij het opsporen van fouten in complexere batchbestanden, omdat u kunt zien wat er wordt uitgevoerd voorafgaand aan een foutmelding.
Antwoord 2, autoriteit 14%
Het betekent “de opdracht niet herhalen naar de standaarduitvoer”.
Vrij vreemd,
echo off
stuurt echo off
naar de uitgang! Dus,
@echo off
zet dit automatische echo-gedrag uit – en stopt het ook voor alle toekomstige commando’s.
Bron: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
Antwoord 3, autoriteit 7%
Standaard geeft een batchbestand zijn opdracht weer terwijl het wordt uitgevoerd. Het doel van deze eerste opdracht die @echo uitis, is om deze weergave uit te schakelen. Het commando “echo off” schakelt de weergave voor het hele script uit, behalve het commando “echo off” zelf. Het “at”-teken “@” ervoor zorgt ervoor dat het commando ook op zichzelf van toepassing is.
Antwoord 4, autoriteit 6%
De @
schakelt echo uit voor dat ene commando. Zonder dit zou de regel echo start eclipse.exe
zowel de bedoelde start eclipse.exe
ende echo start eclipse.exe
regel.
De echo off
schakelt de standaardopdracht echo uit.
Dus @echo off
schakelt commando-echo’s stilletjes uit, en alleen de uitvoer waarvan de batchauteur bedoeld is om te worden geschreven, is daadwerkelijk geschreven.
Antwoord 5, autoriteit 5%
Het erft de betekenis van DOS. @:
In DOS-versie 3.3 en hoger wordt de echo van een batchopdracht verborgen. Elke uitvoer die door de opdracht wordt gegenereerd, wordt herhaald.
Zonder dit zou je commando-echo uit kunnen zetten met behulp van het echo off
commando, maar dat commando zou eerst worden herhaald.
Antwoord 6, autoriteit 2%
Een ander handig moment om @ op te nemen, is wanneer u FOR
in de opdrachtregel gebruikt. Bijvoorbeeld:
FOR %F IN (*.*) DO ECHO %F
Vorige regel toont voor elk bestand: de opdrachtprompt, de opdracht ECHO
en het resultaat van de opdracht ECHO
. Op deze manier:
FOR %F IN (*.*) DO @ECHO %F
Alleen het resultaat van het ECHO
commando wordt getoond.
Antwoord 7, autoriteit 2%
In batchbestand:
1 @echo off(solo)=>voer niets uit
2 echo uit(solo)=> de “echo off” verschijnt in de opdrachtregel
Zie, echo off(solo), betekent geen uitvoer in de opdrachtregel, maar wordt zelf weergegeven;
@echo off(solo), betekent geen uitvoer in de opdrachtregel, noch zelf;
Antwoord 8
je kunt @ in een ‘scriptBlock’ als volgt opnemen:
@(
echo don't echoed
hostname
)
echo echoed
en vooral niet doen 🙂
for %%a in ("@") do %%~aecho %%~a