Попытка сохранить команду out в переменной и поиск совпадений в командном файле. - PullRequest
0 голосов
/ 17 ноября 2009

Я пытаюсь установить переменную в путь реестра. Затем запросите реестр и попытайтесь сопоставить его с переменной. Если оба они совпадают, перейдите к выполнению. Но по какой-то причине я получаю ошибку и похоже, что есть какая-то проблема с этой командой

set var=HKEY_LOCAL_MACHINE\System\x

IF reg query==var
GOTO EXecute 

Ответы [ 2 ]

2 голосов
/ 17 ноября 2009

То, что вы делаете, это просто сравнение строк. Откуда интерпретатору команд знать, что reg query - это команда (кроме того факта, что она сама по себе все равно не даст много полезного).

Что вам нужно сделать, так это выполнить вашу программу, записать ее вывод и сравнить. Вы можете сделать это с помощью команды for /f:

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

Однако вывод reg является читаемым человеком, а не машиночитаемым, поэтому вам нужно немного поработать, чтобы все было правильно. По сути, вам нужно игнорировать пустые строки в этом операторе for, а также в строке заголовка ... и затем вам нужно найти фактическое значение, которое вас интересует. Это будет очень быстро и ужасно.

0 голосов
/ 17 ноября 2009
for /f %%a in ('reg query ...') do if "%var%" == "%%a" goto Execute
...