我想将IP地址设置为变量,但我的代码不起作用。
@echo off
setlocal EnableDelayedExpansion enableextensions
SET IP=
for /f " tokens=14 delims= " %%i in ('ipconfig ^| findstr /c:"IPv4 Address"') do SET /P IP = %%i
call :foo
:foo
SET _AA = IP
echo _AA
答案 0 :(得分:2)
空格在=
set
的两侧都很重要
删除空格。
要引用变量var
的内容,您需要使用%var%
批处理只是逐行继续,直到达到goto
或文件结束。它没有“程序”的概念。执行完for
后,它会继续执行set
和echo
。你需要一行
goto :eof
标签:foo
之前的。该指令进入文件结尾(在这种情况下冒号是必需)
答案 1 :(得分:0)
这是实现目标的一种方法:
@Echo Off
Set "IP="
For /F "Delims=" %%A In ('IPConfig^|Find "IPv4"') Do Set "IP=%%A"
If Not Defined IP GoTo :EOF
Set "IP=%IP:*: =%"
Echo( Local variable %%IP%% resolves to %IP%
Timeout -1
GoTo :EOF