Windows CLI에 명령 대체와 같은 것이 있습니까?


14

Linux (Bash)에는 백틱을 사용하여 명령을 다른 명령의 매개 변수로 사용하는 방법이 있습니다.

> echo ===== `time` =====

이것은 인쇄됩니다 :

===== 현재 시간은 12 : 22 : 34.68 =====

WIndows의 cmd.exe에서 이것을 수행하는 방법이 있습니까?




이 게시물을 참조하십시오 ( cmd에서 doskey 명령 사용 )
misterjaytee

@misterjaytee : 명령 대체와 별칭은 다릅니다.
user1686

@grawity-지적 해주셔서 감사합니다.-자신에 대한 참고 : 응답하기 전에 질문을 올바르게 읽어야합니다 ...
misterjaytee

답변:


9

이 시도:

echo. ===== %time% =====

나는 당신이 명령 대체 를 언급했기 때문에 이것이 당신이 원하는 것이 아닐 수도 있다는 것을 알고 있습니다 ... 그래서 이것이 될 수 있습니다 :

for /f "usebackq tokens=*" %i in (`date/t&time/t`) do echo.  ===== %i =====

사용법에 대한 추가 힌트를 보려면 usebackq다음 명령 을 시도하십시오.

for /?

4
그래, for /f내가 찾던 것입니다. 감사! 참고 사항 : 그것은 너무 번거롭고 기억하기 어렵습니다 (bash 방법과 비교). "박쥐 프로그래밍"을 포기하고보다 생산적인 것을 배워야합니다. PowerShell일까요?
Cristian Diaconescu

3

Windows에서 '()'연산자는 Bash 명령 대체와 유사한 동작을 갖습니다.

이 리눅스 스크립트 :

my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`

echo $my_linux_command=$(ls)
echo $my_alternate_linux_command=`ls`

Windows PowerShell과 비슷한 결과를 제공합니다.

$my_windowsPS_variable = (dir)

$my_windowsPS_variable

그리고 Windows CMD로서 :

set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%

9
Windows CMD 예제가 잘못되었습니다. cmd 쉘의 parens는 서브 쉘에서 명령을 실행합니다. env var는 "(dir)"로 설정되고 두 번째 줄에서 실행됩니다 (env var가 %로 둘러싸여있을 때). 실제로 원하는 대체는 아닙니다.
davidbak

1
이것은 Windows cmd.exe 동작에 대해 올바르지 않습니다
JJS

문제는 cmd.exe를에 대한 반면 이것은 파워 쉘입니다
라울 살리나스 - Monteagudo

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.