Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как сделать такой батник, который запустит фаил путь к которому указан в реестре. (http://forum.oszone.net/showthread.php?t=279658)

DoroViska 22-03-2014 22:06 2327224

Как сделать такой батник, который запустит фаил путь к которому указан в реестре.
 
Как сделать такой батник, который запустит фаил путь к которому указан в реестре. Раздел HKLM\software\star4net имя ключа "1"
дело в том что в этом ключе написан путь к exe файлу. который этот батник должен запустить


Можно .VBS

Sphinx114 22-03-2014 22:51 2327232

Код:

@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 2327341

Sphinx114 - Пишет не предвиденное появление %%i

Sphinx114 23-03-2014 09:44 2327345

DoroViska, при ручном вводе команды for в ком строке используется один знак процента %i, в батниках знак процента удваивается %%i.

DoroViska 23-03-2014 10:23 2327348

Sphinx114, блин вот токо я запускаю этот батник и не чё не происходит! а вот если ввести команду reg query HKLM\software\star4net /v 1 то .bat будет писать 1 reg_sz "D:\GAMES\StarCraft II\StarCraft II.exe"
Может в этом пути чтото не так! Просто твой батник запускаеться и не чё не происходит!

Georgio 23-03-2014 10:57 2327351

Sphinx114, не факт, что "skip=4": для другой версиии "reg.exe" может быть по-другому.

DoroViska, попробуйте последовательно уменьшать значение "skip": "3", "2", "1".

DoroViska 23-03-2014 11:11 2327358

Georgio, Sphinx114, Спасибо огромное" Всё работает! а если на других windows 7 это будет работать?

DoroViska 23-03-2014 11:35 2327376

Georgio, Я вообще убрал этот skip, И всё прекрасно работает. А что делает оператор skip?

Georgio 23-03-2014 12:04 2327387

Цитата:

Цитата DoroViska
на других windows 7 это будет работать? »

Не могу утверждать, что в комплектацию всего "семейства" Windows 7 входит одинаковая версия "reg.exe", но вероятность большая.


Цитата:

Цитата DoroViska
А что делает оператор 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 2327396

Это тоже работает! Но в чём разница мне немного не понятна

Georgio 23-03-2014 12:54 2327403

При использовании ключа "skip" не обрабатываются начальные строки в выводе команды "reg query". Как Вам уже понятно, сам вывод в разных версиях "reg.exe" может быть разным. Поэтому после пропуска определённого количества строк не всегда в разбор циклом попадает то, что нужно. Если в начале вывода присутствуют только пустые строки, то можно не использовать ключ "skip", т. к. они автоматически пропускаются в разборе, что у Вас, возможно, и произошло, когда Вы убрали ключ "skip".

А команда "findstr /i \.exe" ищет в выводе конкретную строку, в которой упоминается ".exe", и именно эта строка обрабатывается циклом.


Время: 20:15.

Время: 20:15.
© OSzone.net 2001-