Показать полную графическую версию : [решено] Как сделать такой батник, который запустит фаил путь к которому указан в реестре.
DoroViska
22-03-2014, 22:06
Как сделать такой батник, который запустит фаил путь к которому указан в реестре. Раздел HKLM\software\star4net имя ключа "1"
дело в том что в этом ключе написан путь к exe файлу. который этот батник должен запустить
Можно .VBS
Sphinx114
22-03-2014, 22:51
@echo off
chcp 1251
for /f "skip=4 tokens=2*" %%i in (
'reg query HKLM\software\star4net /v 1'
) do start "" "%%~j"
DoroViska
23-03-2014, 09:12
Sphinx114 - Пишет не предвиденное появление %%i
Sphinx114
23-03-2014, 09:44
DoroViska, при ручном вводе команды for в ком строке используется один знак процента %i, в батниках знак процента удваивается %%i.
DoroViska
23-03-2014, 10:23
Sphinx114, блин вот токо я запускаю этот батник и не чё не происходит! а вот если ввести команду reg query HKLM\software\star4net /v 1 то .bat будет писать 1 reg_sz "D:\GAMES\StarCraft II\StarCraft II.exe"
Может в этом пути чтото не так! Просто твой батник запускаеться и не чё не происходит!
Sphinx114, не факт, что "skip=4": для другой версиии "reg.exe" может быть по-другому.
DoroViska, попробуйте последовательно уменьшать значение "skip": "3", "2", "1".
DoroViska
23-03-2014, 11:11
Georgio, Sphinx114, Спасибо огромное" Всё работает! а если на других windows 7 это будет работать?
DoroViska
23-03-2014, 11:35
Georgio, Я вообще убрал этот skip, И всё прекрасно работает. А что делает оператор skip?
на других windows 7 это будет работать? »
Не могу утверждать, что в комплектацию всего "семейства" Windows 7 входит одинаковая версия "reg.exe", но вероятность большая.
А что делает оператор skip? »
"skip" - это ключ, указывающий число пропускаемых при обработке в цикле начальных строк.
Moжно попробовать универсально:
@echo off
chcp 1251>nul
for /f "tokens=2* delims= " %%i in ('
reg query HKLM\software\star4net /v 1^| findstr /i \.exe
') do (
start "" "%%~j"
)
DoroViska
23-03-2014, 12:23
Это тоже работает! Но в чём разница мне немного не понятна
При использовании ключа "skip" не обрабатываются начальные строки в выводе команды "reg query". Как Вам уже понятно, сам вывод в разных версиях "reg.exe" может быть разным. Поэтому после пропуска определённого количества строк не всегда в разбор циклом попадает то, что нужно. Если в начале вывода присутствуют только пустые строки, то можно не использовать ключ "skip", т. к. они автоматически пропускаются в разборе, что у Вас, возможно, и произошло, когда Вы убрали ключ "skip".
А команда "findstr /i \.exe" ищет в выводе конкретную строку, в которой упоминается ".exe", и именно эта строка обрабатывается циклом.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.