试图存储一个命令到一个变量,并试图匹配在批处理文件
问题描述:
我想将变量设置为注册表路径。 然后查询注册表并尝试与变量匹配。如果两者相同,则执行。 但由于某种原因,即时得到错误,看起来像有一些问题,此命令试图存储一个命令到一个变量,并试图匹配在批处理文件
set var=HKEY_LOCAL_MACHINE\System\x
IF reg query==var
GOTO EXecute
答
你在做什么有只是比较字符串。指挥官应该如何知道reg query
是一个命令(除了事实,它本身不会产生太多有用的东西)。
你需要做的是执行你的程序,捕获它的输出然后进行比较。你可以用for /f
命令做到这一点:
for /f %%x in ('reg query ...') do ...
然而,reg
输出为人类可读的,而不是机器可读的,所以你需要一些工作得到它的权利。基本上,您需要忽略for
语句和标题行中的空行,然后您需要找到您感兴趣的实际值。这会变得很难看。
答
for /f %%a in ('reg query ...') do if "%var%" == "%%a" goto Execute
这是给错误%%一个就是在这个时候 – alice7 2009-11-17 17:36:20
的一倍%是一个批处理文件中使用的意外,他们不应该,如果直接输入一个命令行上一倍。 – brianary 2009-11-17 18:46:19