尝试将命令存储到变量并尝试匹配批处理文件

时间:2009-11-17 17:21:35

标签: command-line batch-file

我正在尝试将变量设置为注册表路径。 然后查询注册表并尝试与变量匹配。如果两者相同则转到执行。 但由于某些原因我得到错误,看起来这个命令有一些问题

set var=HKEY_LOCAL_MACHINE\System\x

IF reg query==var
GOTO EXecute 

2 个答案:

答案 0 :(得分:2)

你在做什么只是比较字符串。命令解释器应该如何知道reg query是一个命令(除了事实,它本身不会产生很多有用的东西)。

您需要做的是执行程序,捕获其输出然后进行比较。您可以使用for /f命令执行此操作:

for /f %%x in ('reg query ...') do ...

然而,reg的输出是人类可读的,而不是机器可读的,所以你需要做一些工作才能使它正确。基本上你需要忽略for语句中的空行和标题行......然后你需要找到你感兴趣的实际值。这会很快变得丑陋。

答案 1 :(得分:0)

for /f %%a in ('reg query ...') do if "%var%" == "%%a" goto Execute