나는 @
그런 맥락에서 사용되는 것을 보았다 .
@echo off
@echo start eclipse.exe
여기서 무엇을 @
의미합니까?
답변
각 명령을 출력하지 않는 것을 의미합니다. 다음 두 배치 파일을 비교하십시오.
@echo foo
과
echo foo
전자는 foo
출력 만 있고 후자는 인쇄합니다
H:\Stuff>echo foo
foo
(적어도). 보시다시피 실행되는 명령도 볼 수 있습니다.
echo off
전체 배치 파일에 대해이 기능을 해제합니다. 그러나 echo off
통화 자체는 계속 볼 수 있습니다. 이것이 @echo off
배치 파일의 시작 부분에 나타나는 이유 입니다. 명령 반향을 해제 하고 전원을 끈 명령을 표시하지 않습니다.
해당 줄을 제거하거나 주석 처리하는 것은 종종 오류 메시지 전에 실행되는 것을 볼 수 있으므로보다 복잡한 배치 파일에서 유용한 디버깅 도구입니다.
답변
“명령을 표준 출력에 에코하지 마십시오”를 의미합니다.
오히려 이상하게도
echo off
echo off
출력으로 보내드립니다 ! 그래서,
@echo off
이 자동 에코 동작을 해제하고 이후의 모든 명령에 대해서도이를 중지합니다.
출처 : http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
답변
@
비활성화는 하나의 명령 에코. 그것없이, echo start eclipse.exe
라인은 의도 된 라인 start eclipse.exe
과echo start eclipse.exe
라인을 모두 인쇄 할 것이다 .
echo off
바이 기본 명령 에코 해제합니다.
따라서 @echo off
명령 에코를 자동으로 끄고 실제로 작성된 배치 작성자 출력 만 출력됩니다.
답변
DOS에서 의미를 상속합니다. @ :
DOS 버전 3.3 이상에서는 배치 명령의 에코를 숨 깁니다. 명령으로 생성 된 모든 출력이 에코됩니다.
이를 사용하지 않으면 명령을 사용하여 명령 에코를 끌 수 echo off
있지만 해당 명령이 먼저 에코됩니다.
답변
기본적으로 배치 파일은 명령이 실행될 때 해당 명령을 표시합니다. @echo를 끄는 이 첫 번째 명령의 목적은 이 디스플레이를 끄는 것입니다. “echo off”명령은 “echo off”명령 자체를 제외하고 전체 스크립트의 표시를 끕니다. 앞에있는 “at”기호 “@”는 명령을 자신에게도 적용합니다.
답변
@을 포함시키는 또 다른 유용한 시간 FOR
은 명령 줄에서 사용할 때 입니다. 예를 들면 다음과 같습니다.
FOR %F IN (*.*) DO ECHO %F
모든 파일에 대한 이전 줄 표시 : 명령 프롬프트, ECHO
명령 및 ECHO
명령 결과 . 이 방법:
FOR %F IN (*.*) DO @ECHO %F
ECHO
명령 결과 만 표시됩니다.
답변
다음과 같이 @를 ‘scriptBlock’에 포함시킬 수 있습니다.
@(
echo don't echoed
hostname
)
echo echoed
특히 그렇게하지 마십시오 🙂
for %%a in ("@") do %%~aecho %%~a