Я создаю командный файл, чтобы определить, был ли установлен локальный принтер, и если он не установлен, будет запущен другой код.
For /F "Tokens=1 delims=" %%I In ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices" ^|find /I "WPL"') Do If "%%I"=="Printer WPL-606" Goto :EOF
REM Otherwise Do Stuff
Результат, который я получаю при запуске:
C: \ Documents and Settings \ kalamane> If "Принтер"
WPL-606 REG_SZ winspool, Ne07: "==" Принтер WPL-606 "Перейти к: EOF
C: \ Documents and Settings \ kalamane> REM иначе делать вещи
Очевидно, что остальная часть строки из этой записи реестра включена в сравнение, поэтому она не работает.
Я довольно новичок в написании сценариев, и я думаю, что я ошибаюсь, это токены и разделители. Вот строка из реестра, когда используется только запрос reg:
Printer WPL-606 REG_SZ winspool,Ne07:
Может кто-нибудь объяснить, как я могу получить это, чтобы выбрать правильную часть реестра?