Windows 배치 스크립트에서“@”의 의미


132

나는 @그런 맥락에서 사용되는 것을 보았다 .

@echo off

@echo start eclipse.exe

여기서 무엇을 @의미합니까?

답변:


197

각 명령을 출력하지 않는 것을 의미합니다. 다음 두 배치 파일을 비교하십시오.

@echo foo

echo foo

전자는 foo출력 만 있고 후자는 인쇄합니다

H:\Stuff>echo foo 
foo

(적어도). 보시다시피 실행되는 명령도 볼 수 있습니다.

echo off전체 배치 파일에 대해이 기능을 해제합니다. 그러나 echo off통화 자체는 계속 볼 수 있습니다. 이것이 @echo off배치 파일의 시작 부분에 나타나는 이유 입니다. 명령 반향을 해제 하고 전원을 끈 명령을 표시하지 않습니다.

해당 줄을 제거하거나 주석 처리하는 것은 종종 오류 메시지 전에 실행되는 것을 볼 수 있으므로보다 복잡한 배치 파일에서 유용한 디버깅 도구입니다.



14

@비활성화는 하나의 명령 에코. 그것없이, echo start eclipse.exe라인은 의도 된 라인 start eclipse.exe echo start eclipse.exe 라인을 모두 인쇄 할 것이다 .

echo off바이 기본 명령 에코 해제합니다.

따라서 @echo off명령 에코를 자동으로 끄고 실제로 작성된 배치 작성자 출력 만 출력됩니다.


11

DOS에서 의미를 상속합니다. @ :

DOS 버전 3.3 이상에서는 배치 명령의 에코를 숨 깁니다. 명령으로 생성 된 모든 출력이 에코됩니다.

이를 사용하지 않으면 명령을 사용하여 명령 에코를 끌 수 echo off있지만 해당 명령이 먼저 에코됩니다.


링크가 깨졌습니다
ojchase

8

기본적으로 배치 파일은 명령이 실행될 때 해당 명령을 표시합니다. @echo를 끄는 이 첫 번째 명령의 목적은 이 디스플레이를 끄는 것입니다. "echo off"명령은 "echo off"명령 자체를 제외하고 전체 스크립트의 표시를 끕니다. 앞에있는 "at"기호 "@"는 명령을 자신에게도 적용합니다.


3
다른 5 세 게시물과 같이 게시물에 더 이상 더 나은 정보가 표시되지 않습니다.
jeb

5

@을 포함시키는 또 다른 유용한 시간 FOR은 명령 줄에서 사용할 때 입니다. 예를 들면 다음과 같습니다.

FOR %F IN (*.*) DO ECHO %F

모든 파일에 대한 이전 줄 표시 : 명령 프롬프트, ECHO명령 및 ECHO명령 결과 . 이 방법:

FOR %F IN (*.*) DO @ECHO %F

ECHO명령 결과 만 표시됩니다.


@PsychoData : 그것은 ... 당신이 동안으로, 이미 같은 방법으로 질문에 대답, 다른 4 개 답변에 추가로 유용한 정보를 제공하는 유일한 대답을 downvoted 것이 재미
Aacini

6
나는 그의 질문에 대한 답이 아니기 때문에 하향 투표했다. @의 기능에 대한 설명조차 제공하지 않습니다. 사용법에 대한 멋진 예가 있다면 훌륭하지만 여전히 그의 질문에 대한 대답은 아닙니다. 당신은 또한 그것이 무엇을하고 어디에서 왔는지에 대한 내기 설명으로 대답을 올렸다는 것을 알지 못할 수도 있습니다. 난 아무 이유없이 그냥 투표하지 않았다. "답변"은 답이 아닙니다. 다소 관련된 진술입니다.
PsychoData

2

다음과 같이 @를 'scriptBlock'에 포함시킬 수 있습니다.

@(
  echo don't echoed
  hostname
)
echo echoed

특히 그렇게하지 마십시오 :)

for %%a in ("@") do %%~aecho %%~a
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.