Windows 셸에서 변수를 할당하는 방법은 무엇입니까?

Windows 셸에서 변수를 할당하는 방법은 무엇입니까?

Windows7 셸에는 현재 IP 주소를 인쇄하는 다음 작업 코드가 있습니다.

@echo off
:: get ipv4
ipconfig | findstr IPv4 | findstr 172 > ipadd.txt

:: For statement to find the numbers
for /F "tokens=13" %%i in (ipadd.txt) do ( 
  echo %%i 
)
del ipadd.txt /Q

그러나 IP 주소가 인쇄되는 것이 아니라 다음(작동하지 않는) 코드 조각과 같이 변수에 저장되기를 원합니다.

@echo off
:: get ipv4
ipconfig | findstr IPv4 | findstr 172 > ipadd.txt

:: For statement to find the numbers
for /F "tokens=13" %%i in (ipadd.txt) do ( 
  set ip=%%i 
)
del ipadd.txt /Q

echo IP is $ip

예상 출력은 다음과 같습니다(예)

IP는 123.456.7.8입니다.

실제 출력은

IP는 $ip입니다.

문제를 해결하는 방법은 무엇입니까?

답변1

질문에 [bash] 태그를 지정했습니다. 당신은~ 아니다Bourne 쉘과 같은 원격 bash으로 스크립트를 작성합니다 . shWindows 배치 스크립트는 일반적으로 MS-DOS cmd.exe의 자손인 셸 에서 실행되며 COMMAND.COM완전히 다른 구문을 사용합니다.

특히,%name%, 아니다$name는 Windows 및 MS-DOS 배치 스크립트의 변수 구문입니다.

echo IP is %ip%

그 동안:

for /F "tokens=13" %%i in ('ipconfig | findstr IPv4 | findstr 172') do (

관련 정보