명령 대체 수행 Windows 명령 프롬프트

명령 대체 수행 Windows 명령 프롬프트

Windows 명령 프롬프트에서 명령 대체를 어떻게 수행할 수 있습니까?

명령 대체는 UNIX 쉘의 매우 강력한 개념입니다. 한 명령의 출력을 두 번째 명령에 삽입하는 데 사용됩니다. 예를 들어 과제가 있는 경우:

$ today=$(date) # starts the "date" command, captures its output
$ echo "$today"
Mon Jul 26 13:16:02 MEST 2004

할당 외에 다른 명령과 함께 사용할 수도 있습니다.

$ echo "Today is $(date +%A), it's $(date +%H:%M)"
Today is Monday, it's 13:21

이것은 date 명령을 두 번 호출합니다. 첫 번째는 요일을 인쇄하고 두 번째는 현재 시간을 인쇄합니다.

명령 프롬프트에서 이 작업을 수행하려면 알아야 합니다. (명령의 일부를 사용하여 이와 같은 작업을 수행하는 방법이 있다는 것을 이미 알고 있지만 for이 방법은 훨씬 더 난독화되고 복잡합니다.

답변1

DOS에서는 그렇게 할 수 없습니다.

DOS에서 Windows 명령 프로세서를 의미하는 경우 다음을 cmd.exe사용하여 명령 출력을 얻을 수 있습니다 for /f.

for /f %%x in ('date') do set "today=%%x"

요구 사항에 따라 이는 좀 더 복잡해질 수 있습니다.

답변2

에서 제공하는 제한된 기능이 아닌 정품 Unix 스타일 명령 대체를 원한다면 cmd.exeWindows용 정품 Unix 셸을 구입하는 것이 좋습니다. 제가 제안할 수 있는 두 가지는시그윈(무료이지만 Windows 파일 시스템을 잘 이해하지 못합니다) 그리고 내 자신의해밀턴 C 쉘(상업용이지만 Windows용으로 작성되었습니다).

관련 정보