Set不适用于循环脚本窗口批处理

时间:2017-02-19 08:58:38

标签: windows batch-file

我想将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

2 个答案:

答案 0 :(得分:2)

空格在=

set的两侧都很重要

删除空格。

要引用变量var内容,您需要使用%var%

批处理只是逐行继续,直到达到goto或文件结束。它没有“程序”的概念。执行完for后,它会继续执行setecho。你需要一行

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