@echo off setlocal enabledelayedexpansion ::just a sample adapter here: set "adapter=Ethernet adapter Local Area Connection" set adapterfound=false echo Network Connection Test for /f "usebackq tokens=1-2 delims=:" %%f in (`ipconfig /all`) do ( set "item=%%f" if /i "!item!"=="!adapter!" ( set adapterfound=true ) else if not "!item!"=="!item:IP Address=!" if "!adapterfound!"=="true" ( echo Your IP Address is: %%g set adapterfound=false ) )
非常新的批处理,有人可以在这里解释一些事情:
感谢您的时间!
答案 0 :(得分:2)
延迟扩展会导致变量在执行时而不是在解析时扩展。
下面的代码似乎与second second
相呼应,但它会打印first second
。
setlocal EnableDelayedExpansion
set var=first
set var=second & Echo %var% !var!
来源:SS64
usebackq
force for循环使用反引号(`dir`
)来评估其中的命令并使用for
循环的输出,而不是打开文件。这将列出以星号预先记录的文档的所有元素。
echo Documents:
for /f "usebackq" %%i in (`dir /b "C:\Users\%username%\Documents\"`) do (
echo * %%i
)
pause
他们是当地的。使用前面的示例,%%i
仅在for
循环中定义,无需其他初始化。