![]() |
Не конвертируется системная переменная %SystemRoot% в значение, при выгрузке скриптом
Добрый день друзья, выгрузил путь к файлу хост через скрипт и попытался его запустить, но система выдала ошибку "Не удается найти %SystemRoot%\System32\drivers\etc\hosts" соответственно запуск не идет. Если же просто запустит через cmd "start %SystemRoot%\System32\drivers\etc\hosts" то %SystemRoot% преобразуется через системную переменную и запуск производится (запуск выбора программы, которой нужно произвести открытие файла).
Скрытый текст
For /F "usebackq tokens=1,2* skip=2" %%A IN (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V DataBasePath`) DO set Ins=%%C
start %Ins%\hosts поэтому у меня 2 вопроса: 1) Почему при выгрузки через пакетный файл не происходит конвертации системной переменной %SystemRoot%, как это исправить? 2) Можно ли сразу прописать какой программой следует открыть файл, в данном случае файл hosts блокнотом? |
8ash8, Ну так сразу обозначьте "tokens=3" и "Ins=%%A", "skip" можно не задействовать, как и "usebackq" (но замените в этом случае кавычки):
Код:
for /f "tokens=3" %%A in ('Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V DataBasePath') do set "Ins=%%A" |
Вариант 1:
Код:
For /F "usebackq tokens=1,2* skip=2" %%A IN (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V DataBasePath`) DO call set Ins=%%C Вариант 2: Код:
For /F "usebackq tokens=1,2* skip=2" %%A IN (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /V DataBasePath`) DO set Ins=%%C |
Цитата:
Код:
%SystemRoot%\System32\drivers\etc Код:
… DO call set Ins=%%C Цитата:
Код:
notepad.exe "%Ins%\hosts" Коллега Georgio опередил :). |
Всем большое спасибо за оперативные ответы! :)
|
Время: 17:23. |
Время: 17:23.
© OSzone.net 2001-