将表达式的输出分配给变量批处理

时间:2018-03-10 03:28:46

标签: batch-file cmd

我在批处理脚本中运行以下命令:

netsh advfirewall firewall show rule name ="MyCustomRule"

它会输出一个字符串"没有规则符合指定的标准。"或多行。

我希望能够将其输出分配给变量,例如:

set a = output(netsh advfirewall firewall show rule name ="MyCustomRule")

这样我可以进一步if "%a%" == ""。有可能吗?

2 个答案:

答案 0 :(得分:1)

这是可能的,虽然我怀疑处理你的字符串中的所有空格会很有趣。

另一种方法是使用命令FINDFINDST检查输出是否存在子字符串,然后根据生成的IF执行%ERRORLEVEL%语句通过这些命令。

答案 1 :(得分:1)

你的意思是这样的:

@echo off
for /f "delims=" %%a in ('netsh advfirewall firewall show rule name^="MyCustomRule"') do (
    Set "Output=%%a"
)
Echo Output Result = "%OutPut%"
pause