%EC%99%80%20%EB%8F%99%EC%9D%BC%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
Bash에서는 서브셸을 사용하여 한 명령의 결과를 다음 명령에 채울 수 있습니다.
$ echo $(sub-command args)
$(sub-command args)
표준 출력에 기록된 경우 foo
위 명령은 다음과 동일합니다.
$ echo foo
Windows 7에서 이를 수행할 수 있는 방법이 있습니까 cmd.exe
?
내가 이 작업을 수행하려는 이유는 내 경로에 해당 디렉토리가 없어도 npm의 설치 디렉토리에서 실행 파일을 쉽게 실행할 수 있기 때문입니다.
$ $(npm bin)/grunt build
답변1
이미 의견에 언급했듯이 cmd를 사용하여 이 작업을 수행하는 기본 방법은 없습니다. 그러나 귀하의 경우에 사용할 수 있는 해킹이 있습니다( npm bin
한 줄만 반환하므로).
for /F "tokens=*" %n IN ('npm bin') DO @(%n\grunt build)
또는 배치 파일 내에서 다음을 복제해야 합니다 %
.
for /F "tokens=*" %%n IN ('npm bin') DO @(%%n\grunt build)
대안
일괄
다음과 같이 매개변수를 수신하고 명령을 실행하는 스크립트를 생성할 수 있습니다.
:: Takes the parameters and send to npm bin output
for /f "tokens=*" %%n in ('npm bin') do @(%%n\%1 %2 %3 %4 %5)
경로에 npmbin.cmd로 저장한 후 다음을 실행할 수 있습니다.
npmbin.cmd grunt build
파워셸
귀하의 경우에는 Invoke-expression cmdlet을 사용하여 powershell을 통해 이를 호출할 수 있어야 합니다.
iex "$(npm bin)\grunt build"
지금은 npm이 없지만 다른 프로그램으로 테스트해 본 결과 작동할 것 같습니다.
환경 변수
어쨌든 이전 방법은 매우 복잡한 "솔루션"이지만 사용자는 명령을 단순화하기를 원할 뿐입니다. 전역 변수를 생성 NPMBIN
하고 이를 명령에 사용할 수 있는지 궁금합니다 .
%NPMBIN%\grunt build
setx
이를 확장하려면 다음과 같은 일부 배치를 사용하여 사용자(또는 결국 컴퓨터)에 대해 프로그래밍 방식으로 설정하는 작업을 설정할 수 있습니다 .
for /f "tokens=*" %%n in ('npm bin') do @(setx NPMBIN %%n)
도움이 되길 바랍니다. 문안 인사