Удаление пераметра реестра если bat файл запущен в Безопасном режиме
Нужен совет:
Необходимо удалить параметр реестра и при этом вывести сообщение1 если параметр найден и удалён, или сообщение2 если параметр не существует.
Также, подскажите, как остановить выполнение bat файла, если Windows загружена не в Безопасном режиме?
|
Код:
@ECHO OFF
(REG DELETE "HKCU\Software\*****" /V "***" /F 2>nul&&ECHO Message 1)||ECHO Message 2
PAUSE>nul
Цитата:
Цитата Sfero_ID
CMD/BAT - Удаление пераметра реестра если bat файл запущен в Безопасном режиме »
|
Цитата:
Цитата Sfero_ID
Также, подскажите, как остановить выполнение bat файла, если Windows загружена не в Безопасном режиме? »
|
???
|
Суть в том, что параметр реестра удаляется, только в безопасном режиме: возможно ли, если bat файл запущен в обычном режиме Windows, вывести сообщение об этом?
|
Думаю, что, если по какой-либо причине параметр или раздел реестра не могут быть в данный момент удалены, то в командной строке будет такое сообщение, и вставлять команду в BAT-файл для вывода в этом случае своего какого-нибудь сообщения не имеет смысла.
Чтобы увидеть такое сообщение, если оно будет, просто убираем из кода 2>nul:
Код:
@ECHO OFF
(REG DELETE "HKCU\Software\*****" /V "***" /F&&ECHO Message 1)||ECHO Message 2
PAUSE>nul
.
|
Я вообще не вижу смысла в:
Цитата:
Цитата Sfero_ID
вывести сообщение1 если параметр найден и удалён, или сообщение2 если параметр не существует. »
|
поскольку конечный результат и в том, и в другом случае одинаков. Бессмысленно.
Вот если параметр существует, но удалить не удалось — тогда другое дело.
|
Цитата:
Цитата Iska
Вот если параметр существует, но удалить не удалось — тогда другое дело. »
|
Согласен, немного не так сформулировал... Параметр удалится только в Безопасном режиме, поэтому и нужно сообщение о запуске bat файла в безопасном режиме. А как тогда сделать сообщение1, если параметр удалён или не существует, и сообщение2, если параметр существует, но удалить его не удалось?
Или проще:
Цитата:
Цитата Sfero_ID
возможно ли, если bat файл запущен в обычном режиме Windows, вывести сообщение об этом? »
|
|
Sfero_ID, например, так ( Win32_ComputerSystem class (Windows)):
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (
`wmic.exe ComputerSystem get BootupState /value ^| find.exe "BootupState"`
) do set s%%i
if defined sBootupState (
if "%sBootupState%" equ "Normal boot" (
echo Normal boot mode
) else (
echo A one of Safe boot modes
)
)
endlocal
exit /b 0
Я, правда, не проверял — отработает ли сама утилита «wmic.exe» в безопасном режиме.
|
Время: 11:32.
© OSzone.net 2001-