【问题标题】:Local Area Connection State: Batch File本地连接状态:批处理文件
【发布时间】:2014-05-29 15:52:27
【问题描述】:

我正在尝试编写一个批处理脚本来确定是否插入了“本地连接”适配器。

    set nicValue=
for /f "delims=" %%a in ('netsh interface show interface "Local Area Connection"') do @set nicValue=%%a
echo %nicValue%
if "%nicValue%"=="Connect state:        Connected" echo On

我能够获得正确的输出并将其保存到名为%nicValue% 的变量中,但是,我无法根据此输出运行“if”命令。截至目前,如果批处理文件可以看到“连接状态:”和“已连接”,我要做的就是回显“打开”,但我不知所措。任何帮助将不胜感激!

【问题讨论】:

  • echo -%nicValue%- 你就会明白为什么了。
  • Stephan,我找到了尾随空格。但是,在检查 Connect State 值后,我仍然无法让脚本运行“echo On”。
  • 在脚本启动时手动输入命令时我注意到的一件事......通过运行“if”命令,我收到“状态:此时是意外”错误。跨度>
  • state: was unexpected: 检查你的双引号 (")

标签: batch-file networking cmd


【解决方案1】:

为什么不直接在for /f 循环中过滤: 并获得一个干净的值。像这样:

    set nicValue=
for /f "tokens=3 delims=: " %%a in ('netsh interface show interface "Local Area Connection"') do @set nicValue=%%a
echo %nicValue%
if "%nicValue%"=="Connected" echo Connected

但我认为您的问题是使用echo on 语句,因为您将echo 转换为on 状态,您需要将其改写为echo Connected 之类的其他内容

【讨论】:

  • 注意,这取决于本地化。例如在德语窗口connection stateVerbindungsstatus,所以tokens=3 在每台计算机上并不可靠
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 2010-12-02
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
相关资源
最近更新 更多