답변:
표준 Windows 명령 셸 — cmd.exe
— <<
연산자 를 전혀 사용하지 않습니다 .¹
하나의 <
수단 "로 파일을 읽어 표준 입력 을" cmd.exe
하지만이 개 <
문자 백투백에 의미가 cmd.exe
당신이있어 오류를 제공하므로.
이 <<
연산자 는 모든 주요 유형의 Unix 명령 셸에 의미가 있으며 여기에서 다음 문서에 사용됩니다 .²
$ some-command <<END
blah blah blah
blah blah
blah blah blah blah blah
END
이 세 줄 some-command
은 표준 입력으로 전송됩니다 .
이 기능은 <
연산자 를 사용해야 할 때 파일에 먼저 쓰지 않고 많은 텍스트를 명령에 보내는 데 유용합니다 . 나는 종종 "usage"메시지를 스크립트에 포함시키기 위해 사용한다 :
#!/bin/sh
if [ -z "$1" ]
then
cat <<USAGE
usage: myscript <files...>
Grobbles the foobie for all files given on the command line.
USAGE
exit 1
fi
# ... do something with command line arguments
echo
heredoc 텍스트가 화면에 인쇄되는 것처럼 정확하게 형식이 지정되므로 많은 명령문을 작성하는 것보다 낫습니다 . 또한이 문맥에서 공백, 따옴표, 리디렉션 및 변수 보간을 처리하는 것이 더 쉽습니다. 예를 들어, 쉘이 I / O 리디렉션에 사용하지 못하도록 영리한 작업을 수행하지 않고도 사용법 메시지에 꺾쇠 괄호를 사용했습니다.
Windows에서 이와 같은 작업을 수행하려면 Cygwin을 설치 하고 해당 쉘 중 하나를 사용할 수 있습니다. Windows 10을 사용하는 경우 WSL을 대신 사용할 수 있습니다 .
각주 :
이 링크는 보관 된 Windows XP 설명서 트리로 이동합니다. 마이크로 소프트는, 그래서 경우에 그들은 다시 휴식, 그들이이 문서를 보관 때 이전에 사용 된 링크를 부러 여기에 백업 타사 참조입니다.
cmd.exe
내가 microsoft.com에서 알고있는 다른 참조 자료는 Windows 명령 PDF (4.9MB, 948 페이지) 뿐이며 대부분의 내장 및 Microsoft 제공 외부 명령에 대한 참조 만 제공합니다. 당신은 cmd
프롬프트 에서 줄 수 있습니다 . 이 PDF는 두 가지 기반에서 불완전합니다. 우선 여기에서 가장 관련성이 높은 것은 cmd.exe
쉘 에서 리디렉션이 작동하는 방식에 대한 결합 된 논의가 없습니다 . 쉘 문법에 대한 토론조차 없습니다. 둘째, PDF의 명령 목록이 불완전합니다. 확인한 첫 번째 내용은 다루지 않습니다 diskpart
.
나는 이것이 마이크로 소프트의 명확한 시도로부터 다음의 모든 대체 할 생각 cmd.exe
으로 PowerShell을 지금 몇 년 동안 계속되었습니다. 이 글을 쓰는 시점에서 가장 최근의 Windows 10 업데이트에서는 아직 완전히 사라지지 않았지만 의 존재를 숨기기 위해 추가 단계를 수행했습니다cmd.exe
.
그것은 있음을 주목할 필요가있다 PowerShell을 또한 지원하지 않는 <<
리디렉션 연산자 . 유닉스 쉘에서 슬프게도 회귀 cmd.exe
하지 않고 <
리디렉션 도 지원하지 않습니다 !
here-document를 시작하는 정식 방법은 위에서 쓴 것처럼 <<
구분 기호 단어 사이에 공백이없는 것 입니다. 내 퍼지 기억은 쉘 스크립트에서 본 여기 문서의 모든 사용도 이와 같이 수행된다는 것입니다. 이 문서의 POSIX 사양 도 예제에서이 스타일을 사용합니다.
그러나 POSIX.1-2008 사양 의 다른 부분을주의 깊게 읽으면 <<
및 구분 기호 단어 사이에 몇 개의 공백 또는 탭 문자를 넣는 것이 합법적 입니다. 특히, 참조 토큰 인식 7, 10 규칙 의 정의 io_here
에서 쉘 문법 , 그리고 정의 은 "빈"문자 클래스 .
이것이 쉘을 문서화하는 방법입니다. Microsoft, 메모하십시오. ;)
여기 Bash 4에서 테스트 ksh93
하여 예상대로 작동하는지 확인 하십시오 .
없다 >
하고 >>
있지만 <
, 더이<<
command < filename Type a text file and pass the text to command
>
새 파일에 씁니다.
>>
파일에 추가
<
파일에서 읽습니다
|
다른 명령의 입력으로 명령 출력을 보냅니다.
목록을 보려면 여기를 참조하십시오 윈도우 부활절 달걀 cmd.exe를로 타이핑 % ^입니까?
해당 게시물이 게시 된 이후에 추가되었습니다.
Starting a Program
===============
See start /? and call /? for help on all three ways.
Specify a program name
--------------------------------
c:\windows\notepad.exe
In a batch file the batch will wait for the program to exit. When
typed the command prompt does not wait for graphical
programs to exit.
If the program is a batch file control is transferred and the rest of the calling batch file is not executed.
Use Start command
--------------------------
start "" c:\windows\notepad.exe
Start starts a program and does not wait. Console programs start in a new window. Using the /b switch forces console programs into the same window, which negates the main purpose of Start.
Start uses the Windows graphical shell - same as typing in WinKey + R (Run dialog). Try
start shell:cache
Use Call command
-------------------------
Call is used to start batch files and wait for them to exit and continue the current batch file.