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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Не конвертируется системная переменная %SystemRoot% в значение, при выгрузке скриптом

Ответить
Настройки темы
CMD/BAT - [решено] Не конвертируется системная переменная %SystemRoot% в значение, при выгрузке скриптом

Новый участник


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

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


Добрый день друзья, выгрузил путь к файлу хост через скрипт и попытался его запустить, но система выдала ошибку "Не удается найти %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 блокнотом?

Отправлено: 17:02, 16-02-2016

 

Ветеран


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

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


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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:47, 16-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Вариант 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
start %Ins%\hosts
.


Вариант 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
call start %Ins%\hosts
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:06, 16-02-2016 | #3


Ветеран


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

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


Цитата 8ash8:
1) Почему при выгрузки через пакетный файл не происходит конвертации системной переменной %SystemRoot%, как это исправить? »
Потому что в реестре хранится строка, содержащая указанный текст:
Код: Выделить весь код
%SystemRoot%\System32\drivers\etc
— c чего вдруг она должна «конвертироваться»?! Переменную окружения «%SystemRoot%», содержащуюся в указанном тексте, можно раскрыть, например, по «call»:
Код: Выделить весь код
… DO call set Ins=%%C
Цитата 8ash8:
2) Можно ли сразу прописать какой программой следует открыть файл, в данном случае файл hosts блокнотом? »
Укажите вызов Блокнота:
Код: Выделить весь код
notepad.exe "%Ins%\hosts"
8ash8, используйте тэг «code».

Коллега Georgio опередил .
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:10, 16-02-2016 | #4


Новый участник


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

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


Всем большое спасибо за оперативные ответы!

Отправлено: 09:44, 17-02-2016 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Не конвертируется системная переменная %SystemRoot% в значение, при выгрузке скриптом

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Системная переменная среда PATH Evgeny21128 Хочу все знать 17 31-03-2012 15:14
2008 R2 - Загадочная Системная переменная GreyAngel Windows Server 2008/2008 R2 1 03-07-2010 09:44




 
Переход