Показать полную графическую версию : синтаксис в бат-файле
Всем добрый день!
Перепробовал все варианты, на вас последняя надежда :)
Ситуация такая: есть батник, который помимо всего прочего добавляет несколько значений в реестр. Вот эти строчки:
y:\reg.exe add HKEY_CLASSES_ROOT\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
y:\reg.exe add HKEY_CLASSES_ROOT\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
y:\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
y:\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
Так вот, если закомментить вторую пару, то первая пара отрабатывает нормально. А если раскомментить вторую пару, то (ВНИМАНИЕ) и в разделы 1ой пару, и в разделы 2ой пары добавляются значения 2ой пары, а именно "C:\FirefoxPortable\FirefoxPortable.exe"
Менял их местами по разному, добавлял\убирал кавычки в пути ключа реестра - результат тот же!
Что с ним ещё сделать?
Почему именно «y:\reg.exe»? «reg.exe» у Вас что — в системе отсутствует?
Так вот, если закомментить вторую пару, то первая пара отрабатывает нормально. А если раскомментить вторую пару, то (ВНИМАНИЕ) и в разделы 1ой пару, и в разделы 2ой пары добавляются значения 2ой пары, а именно "C:\FirefoxPortable\FirefoxPortable.exe" »
Дело в том, что раздел «HKEY_CLASSES_ROOT» складывается из двух частей: Реестр Windows — Википедия, HKEY_CLASSES_ROOT (http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B5%D1%81%D1%82%D1%80_Windows#HKEY_CLASSES_ROOT).
Для начала объясните, чего Вы хотите добиться.
Вот нежданчик .. получается, что это одна и та же ветка только называется по разному, и просто напросто какое значение было записано последним, такое будет в обеих ветках ?.. приехали ..
Я это делаю это, чтоб удалённо прописать Firefox браузером по умолчанию. Почему именно эти ветки? Я просто сравнил два снимка реестра, до и после установки Firefox'а по умолчанию на локальной машине (веток гораздо больше, эти я взял для примера).
Тогда вопрос : как сам Firefox умудряется прописать РАЗНЫЕ значения в одну и ту же ветку?
Вот нежданчик .. получается, что это одна и та же ветка только называется по разному, и просто напросто какое значение было записано последним, такое будет в обеих ветках ?.. приехали .. »
Это не «одна и та же ветка». Ещё раз:
раздел «HKEY_CLASSES_ROOT» складывается из двух частей »
приоритет у HKCU.
Я это делаю это, чтоб удалённо прописать Firefox браузером по умолчанию. »
Исполните удалённо (или групповой политикой) это (http://forum.oszone.net/post-2290969.html#post2290969).
Тогда вопрос : как сам Firefox умудряется прописать РАЗНЫЕ значения в одну и ту же ветку? »
Это не «одна и та же ветка».
Исполните удалённо (или групповой политикой) это. »
Дело в том что у меня версия портабл, но не суть важно, потому что с вашей помощью выяснил, что то, что было вписано в LOCAL_MACHINE транслируется в CLASSES_ROOT, а наоборот - нет. То есть достаточно просто поменять местами строчки и всё прописывается правильно! В данном случае так:
y:\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
y:\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
y:\reg.exe add HKEY_CLASSES_ROOT\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
y:\reg.exe add HKEY_CLASSES_ROOT\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
Iska, большущее спасибо за правильное направление, а то бы так и искал ошибки в синтаксисе!
а наоборот - нет. »
И наоборот — при условии, что нет аналогичного пути в HKCU. Если есть — пишется именно в HKCU.
Рано обрадовался ..
В общем получается, что если запустить батник мышкой из-под юра на локальном компе, то всё отлично - Firefox везде правильно прописывается, ссылка из любого документа открывается именно ей, а вот если этот батник выполняется при включении кампа через групповую политику, то всё прописывается, но ссылки в документах открываются прежним браузером .. Подозреваю, что не хватает чего-то в CURRENT_USER.
Вот 1й батник, он запускается при включении кампа:
c:\FirefoxPortable\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
c:\FirefoxPortable\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
c:\FirefoxPortable\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
c:\FirefoxPortable\reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\FirefoxPortable.exe\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\ftp\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\.html\ /ve /t REG_SZ /d FirefoxHTML /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\.htm\ /ve /t REG_SZ /d "FirefoxHTML" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\.shtml\ /ve /t REG_SZ /d "FirefoxHTML" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\.xht\ /ve /t REG_SZ /d "FirefoxHTML" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\.xhtml\ /ve /t REG_SZ /d "FirefoxHTML" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\ftp\DefaultIcon\ /ve /t REG_SZ /d "C:\FirefoxPortable\App\Firefox\firefox.exe,1" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\http\DefaultIcon\ /ve /t REG_SZ /d "C:\FirefoxPortable\App\Firefox\firefox.exe,1" /f
c:\FirefoxPortable\reg.exe add HKEY_CLASSES_ROOT\https\DefaultIcon\ /ve /t REG_SZ /d "C:\FirefoxPortable\App\Firefox\firefox.exe,1" /f
Вот 2й батник, он выполняется при входе юзера в систему:
c:\FirefoxPortable\reg.exe add HKEY_CURRENT_USER\Software\Classes\http\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CURRENT_USER\Software\Classes\https\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CURRENT_USER\Software\Classes\ftp\shell\open\command /ve /t REG_SZ /d "\"C:\FirefoxPortable\App\Firefox\firefox.exe\" -osint -url \"%%1\"" /f
c:\FirefoxPortable\reg.exe add HKEY_CURRENT_USER\Software\Clients\StartMenuInternet /ve /t REG_SZ /d "FIREFOX.EXE" /f
c:\FirefoxPortable\reg.exe add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage /ve /t REG_SZ /d "ProgramsCache" /f
Может вы видите чего не хватает?
Может вы видите чего не хватает? »
Я вижу, что не надо заниматься извращениями в виде переназначения ассоциаций в реестре на portable-приложение. Моё мнение таково.
Foreigner
24-01-2014, 22:34
c:\FirefoxPortable\reg.exe »
Что за reg.exe? Я бы поостерегся.
Понятно, конструктивная информация закончилась, началась критика ..
Я вижу, что не надо заниматься извращениями в виде переназначения ассоциаций в реестре на portable-приложение. Моё мнение таково. »
Надо.Что за reg.exe? Я бы поостерегся. »
Всё в порядке, это стандартная майкросовтовская утилита для работы с реестром.
Давайте не доводить до "посмотреть в гугле религия не позволяет" или "много раз тема поднималась". Видел я, что пишет гугл, и подходит это для запуска батника из-под юзера, но не при запуске машины из групповых политик.
Если не знаете, ничего не пишите, это просто.
Понятно, конструктивная информация закончилась, началась критика .. »
Хотите конструктивную критику — будет Вам конструктивная. Вы импортировали данные в реестр. Бумс! Вышел из строя ИБП, в соседнем кабинете включили чайник, автомат отрубил сеть. Ваши импортированные данные остались в реестре и перекрыли ранее существовавшие настройки. Да и кому понравится, что существующие ассоциации переназначены на что-то «левое».
Я не пойму, зачем сие вообще нужно?! Firefox в виде portable-приложения превосходно работает без данных манипуляций с реестром. Если переназначаете ассоциации и прочее — в чём тогда смысл заведения portable-приложения? Я этого понять никак не могу.
Foreigner
26-01-2014, 13:20
Всё в порядке, это стандартная майкросовтовская утилита для работы с реестром. »
Я так понимаю, что стандартный, штатный reg.exe запрещен? Тогда можно импортировать reg-файл. Или используйте специально для этого предназначенные утилиты ftype и assoc (надеюсь они не запрещены):
@echo off
setlocal
assoc http=URL:HyperText Transfer Protocol
assoc https=URL:HyperText Transfer Protocol with Privacy
assoc ftp=URL:File Transfer Protocol
for %%i in (http https ftp) do ftype %%i="C:\FirefoxPortable\App\Firefox\firefox.exe" -osint -url %%1
Если не знаете, ничего не пишите, это просто
Не надо горячиться, вы сюда пришли с вопросами, вам стараются помочь.
Dudee, я нашёл информацию, которую хотел Вам показать по поводу объединения информации из двух кустов реестра («machine» и «user») в один раздел «HKEY_CLASSES_ROOT»: Merged View of HKEY_CLASSES_ROOT (Windows) (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724498(v=vs.85).aspx).
Спасибо за информацию, в целом очень интересно.
Но мозилла всё равно спрашивает сделать ли её по умолчанию, хотя все ссылки и странички открывает именно она :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.