Command line 尝试将命令的输出存储到变量,并尝试在批处理文件中进行匹配
我正在尝试将变量设置为注册表路径。 然后查询注册表并尝试与变量匹配。如果两者相同,则转到执行。 但是由于某些原因,我得到了错误,看起来这个命令有一些问题Command line 尝试将命令的输出存储到变量,并尝试在批处理文件中进行匹配,command-line,batch-file,Command Line,Batch File,我正在尝试将变量设置为注册表路径。 然后查询注册表并尝试与变量匹配。如果两者相同,则转到执行。 但是由于某些原因,我得到了错误,看起来这个命令有一些问题 set var=HKEY_LOCAL_MACHINE\System\x IF reg query==var GOTO EXecute 你在那里做的只是比较字符串。命令解释器如何知道reg query是一个命令(除此之外,它本身不会产生太多有用的东西) 这里需要做的是执行程序,捕获其输出,然后进行比较。您可以使用for/f命令执行此操作:
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