1

我将此 NETSH 命令(如下)设置为一个变量,%connectionname%,我需要稍后使用它来断开与 Internet 的连接,然后再使用它重新连接到 Internet。

set %connectionname%=NETSH WLAN SHOW INTERFACE | findstr /r "^....SSID"`

它显示变量在断开互联网连接后为空白,我不知道为什么,有人可以帮我弄清楚为什么这不显示吗?

4

1 回答 1

1

您不能使用该语法将变量设置为命令的输出。您应该使用 FOR /F 命令,在 IN() 子句中将命令括在单引号中,以向 FOR 发出您要执行命令的信号。

我假设您想要变量中的值,而不是 SSID 标签。因此,您希望将 FOR /F 分隔符设置为冒号和空格,并将标记设置为 2。此外,当您想要扩展值时,您只需将变量名称括在百分比中。当您要设置变量时,不要使用百分比。

这是可以从命令行运行的完整命令:

for /f "tokens=2 delims=: " %A in ('netsh wlan show interface ^| findstr "^....SSID"') do set "connectionname=%A"

如果要将命令包含在批处理文件中,则必须将百分比加倍:%A 变为%%A.

键入HELP FORFOR /?从命令提示符获取有关如何使用 FOR /F 的详细信息。

于 2013-05-16T00:55:55.873 回答