【问题标题】:Windows7 Batch, how to break after first For loopWindows7 Batch,如何在第一个 For 循环后中断
【发布时间】:2016-08-08 13:48:39
【问题描述】:

我正在编写一个简单的脚本来检索我作为 IP 给出的本地主机地址。

为了获得我的 IPv4 地址 (Win7),我编写了简单的 FOR 循环,但结果我从 last loop 而不是 first one 获得 IP。

这里是批处理代码:

cls
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do (
  set ip=%%b
)
set ip=%ip:~1%
echo %ip%

返回:

(set ip= 192.168.1.101 )
(set ip= 192.168.88.1 )
(set ip= 192.168.137.1 )
set ip=192.168.137.1
echo 192.168.137.1
192.168.137.1

我需要的是第一个循环的结果:

192.168.1.101

【问题讨论】:

  • 在循环中的set命令之后,放置goto :SKIP;将标签:SKIP放在循环的关闭)之后...
  • 是的,它需要在循环之后添加 :SKIP 标签并完成工作:-)

标签: windows batch-file command-line terminal


【解决方案1】:

那么这段没有循环的代码呢?

@Echo off
For /f "tokens=2 delims= " %%a in ('arp -a ^|findstr /i "Interface"') do (set IP=%%a)
Echo The IP adress is : %IP%
pause

【讨论】:

  • 测试 - 工作。由于@aschipfl 也提出了解决方案,您的解决方案较短,我会将其标记为已接受,谢谢!
【解决方案2】:

也使用@aschipfl :SKIP 解决方案编码

for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do (
  set ip=%%b
  goto :SKIP
)
:SKIP
set ip=%ip:~1%
echo %ip%

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多