Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата user_123:
Однако, не работает...
Что могу сказать… У меня, приведённый мною код, работает корректно. Обычно я даже проверяю ещё раз после выкладывания, дабы постараться избежать нелепых опечаток/ошибок при копировании.

Сие может зависеть отчасти от версии reg.exe; Вы можете попробовать, как указывал amel27, не использовать «skip», а фильтровать выходной поток команды «reg.exe», только используя в качестве фильтра имя параметра:
Код: Выделить весь код
for /f "tokens=3* delims=	" %%i in ('reg.exe query "HKCU\Console" /v "FaceName"^|find.exe /i "FaceName"') do (
вместо
Код: Выделить весь код
for /f "skip=3 tokens=3* delims=	" %%i in ('reg.exe query "HKCU\Console" /v "FaceName"') do (
Цитата user_123:
А, в целом, у меня так написано…
А почему именно так? Ибо у меня команда (с реально существующими параметрами):
Код: Выделить весь код
for /f "tokens=2*" %i in ('reg.exe query "HKCU\Console" /v "FaceName"') do echo %i
выдаёт ожидаемое:
Цитата:
REG_SZ
В таком случае верните на место своё «echo %%j» (а не «%%i», как в моём примере), поскольку Вы используете «tokens=2*» (а я — «tokens=3*»), и у Вас «*» будет как раз в «%%j».
Цитата user_123:
А если ключа реестра нет, то нет и значения у переменной тоже нет...
Логично . Цитирую…
читать дальше »
…условие задачи, поставленное Вами же:
Цитата user_123:
…как проверить, содержится ли в значении ключа реестра искомая строка…
Про то, что требуется попутно проверять наличие самого раздела и/или параметра реестра (и как следует в этом случае поступать) — не упоминалось никоим образом.

Отправлено: 02:43, 27-09-2009 | #4