Bash로 작업 할 때 다음과 같이 한 명령의 출력을 다른 명령에 넣을 수 있습니다.
my_command `echo Test`
다음과 같을 것입니다.
my_command Test
(분명히 이것은 비실용적 인 예일뿐입니다.)
Batch에서 똑같은 일을 할 수 있는지 궁금합니다.
답변
먼저 출력을 파일로 리디렉션하면됩니다. 예를 들면 :
echo zz > bla.txt
set /p VV=<bla.txt
echo %VV%
답변
cmd.exe 스크립트를 다음 for /f
명령 과 함께 사용하여 유사한 기능을 얻을 수 있습니다 .
for /f "usebackq tokens=*" %%a in (`echo Test`) do my_command %%a
예, 그것은 다소 불명확하지만 (가장 적게 말하면) 거기에 있습니다.
for /?
피투성이의 세부 사항을 참조 하십시오.
사이드 노트 : echo
” for /f
“명령 에서 백틱 안에 ” ” 를 사용 하는 것은에 대한 내부 명령 cmd.exe /c echo Test
이기 때문에 ” “를 사용하여 수행해야한다고 생각 했지만 더 자연스러운 방식으로 작동합니다. Windows 배치 스크립트는 항상 저를 놀라게합니다 (하지만 일반적으로 좋은 방식은 아닙니다).echo
cmd.exe
답변
“for”명령에 대한 문서를 읽으십시오. for /?
슬프게도 직접 확인하기 위해 Windows에 로그인하지 않았지만 다음과 같이 원하는 내용을 대략적으로 확인할 수 있습니다.
for /F %i in ('echo Test') do my_command %i
답변
답변
아마도 나는 표준 for /f
방법 의 구문을 망쳐 놓고 있을지도 모르지만 , &&와 | 의 한계에서 백틱 내에서 for /f
문제가 발생합니다. 임의의 복잡성 명령을 처리하기 위해 평소에서 약간의 수정이 가능합니다.
SET VV=some_command -many -arguments && another_command -requiring -the-other -command | handling_of_output | more_handling
for /f "usebackq tokens=*" %%a in (`%VV%`) do mycommand %%a
전체 및 복잡한 명령을 변수에 먼저 넣은 다음 복잡한 명령을 for 루프의 한계에 직접 넣는 대신 한계에 변수에 대한 참조를 넣으면 구문 해석 문제를 피할 수 있습니다. 현재 VV
위의 예 에서 변수로 설정 한 정확한 명령을 사용 된 위치에 복사 %VV%
하면 구문 오류가 발생합니다.