에 다른 명령을 실행하는 방법은 여러 가지가 있습니다 bash
와 cmd
같은 스크립트는.
cmd
:;
다른 답변에서 언급했듯이으로 시작하는 줄을 무시 합니다. 또한 현재 줄이 명령으로 끝나면 다음 줄을 무시합니다 rem ^
. ^
문자는 줄 바꿈을 이스케이프하고 다음 줄은 주석으로 처리됩니다 rem
.
선 을 bash
무시하는 cmd
방법에는 여러 가지가 있습니다. cmd
명령 을 중단하지 않고이를 수행하는 몇 가지 방법을 열거했습니다 .
존재하지 않는 #
명령 (권장되지 않음)
스크립트가 실행될 때 #
사용할 수있는 명령 이없는 경우 다음 cmd
을 수행 할 수 있습니다.
# 2>nul & echo Hello cmd! & rem ^
echo 'Hello bash!' #
#
의 시작 부분에 캐릭터 cmd
라인 차종은 bash
주석으로 그 라인을 취급합니다.
#
의 끝에 문자 bash
라인은 주석하는 데 사용됩니다 \r
브라이언 Tompsett는 지적으로, 문자를 그의 대답 . 이것이 없으면 bash
파일에 \r\n
에서 요구하는 줄 끝 이 있으면 오류가 발생합니다 cmd
.
를 수행함으로써 # 2>nul
우리는 cmd
존재하지 않는 일부 #
명령 의 오류를 무시하는 동시에 다음 명령을 계속 실행합니다.
에서 #
사용할 수 있는 명령이 PATH
있거나에서 사용할 수 있는 명령을 제어 할 수없는 경우이 솔루션을 사용하지 마십시오 cmd
.
문자 echo
무시에 사용#
cmd
의 주석 처리 된 영역 에 명령 echo
을 삽입하기 위해 리디렉션 된 출력과 함께 사용할 수 있습니다 .cmd
bash
echo >/dev/null # >nul & echo Hello cmd! & rem ^
echo 'Hello bash!' #
이후 #
문자가 의미하는 특별한이 없습니다 cmd
, 그것은에있는 텍스트의 한 부분으로 처리됩니다 echo
. 우리가해야 할 일은 echo
명령 의 출력을 리디렉션하고 그 뒤에 다른 명령을 삽입하는 것뿐입니다.
빈 #.bat
파일
echo >/dev/null # 1>nul 2> #.bat
# & echo Hello cmd! & del #.bat & rem ^
echo 'Hello bash!' #
이 echo >/dev/null # 1>nul 2> #.bat
줄은 #.bat
on 동안 빈 파일을 만들고 cmd
(또는 기존 #.bat
,있는 경우 대체 ) on 동안 아무 작업도 수행하지 않습니다 bash
.
이 파일은에 cmd
다른 #
명령 이 있더라도 다음 행에서 사용됩니다 PATH
.
특정 코드 의 del #.bat
명령 cmd
은 생성 된 파일을 삭제합니다. 마지막 cmd
줄 에서만이 작업을 수행하면됩니다 .
#.bat
파일이 현재 작업 디렉토리에있을 수있는 경우이 솔루션을 사용하지 마십시오 . 해당 파일이 지워집니다.
:; echo 'Hello bash!';<<:
echo Hello cmd! & ^
:
줄 ^
끝에 문자 를 배치하면 cmd
줄 바꿈을 이스케이프 :
하고 here-document 구분 기호로 사용하면 구분 기호 줄 내용이에 영향을 미치지 않습니다 cmd
. 그렇게하면, cmd
애프터에만 광고를 실행 :
선이 끝난 동일한 동작을 갖는 bash
.
두 플랫폼 모두에 여러 줄을 사용하고 블록 끝에서만 실행하려면 다음을 수행하십시오.
:;( #
:; echo 'Hello' #
:; echo 'bash!' #
:; );<<'here-document delimiter'
(
echo Hello
echo cmd!
) & rem ^
here-document delimiter
cmd
정확히 가있는 줄 이없는 here-document delimiter
한이 솔루션이 작동합니다. here-document delimiter
다른 텍스트로 변경할 수 있습니다 .
제시된 모든 솔루션 에서 명령은 마지막 줄 이후에만 실행 되므로 두 플랫폼에서 동일한 작업을 수행하면 동작이 일관되게됩니다.
이러한 솔루션은 \r\n
줄 바꿈 으로 파일에 저장해야합니다 . 그렇지 않으면에서 작동하지 않습니다 cmd
.