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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Удаление пераметра реестра если bat файл запущен в Безопасном режиме (http://forum.oszone.net/showthread.php?t=261869)

Sfero_ID 04-06-2013 23:21 2162421

Удаление пераметра реестра если bat файл запущен в Безопасном режиме
 
Нужен совет:
Необходимо удалить параметр реестра и при этом вывести сообщение1 если параметр найден и удалён, или сообщение2 если параметр не существует.
Также, подскажите, как остановить выполнение bat файла, если Windows загружена не в Безопасном режиме?

Georgio 04-06-2013 23:49 2162438

Код:

@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 загружена не в Безопасном режиме? »


???

Sfero_ID 05-06-2013 01:20 2162452

Суть в том, что параметр реестра удаляется, только в безопасном режиме: возможно ли, если bat файл запущен в обычном режиме Windows, вывести сообщение об этом?

Georgio 05-06-2013 02:03 2162458

Думаю, что, если по какой-либо причине параметр или раздел реестра не могут быть в данный момент удалены, то в командной строке будет такое сообщение, и вставлять команду в BAT-файл для вывода в этом случае своего какого-нибудь сообщения не имеет смысла.


Чтобы увидеть такое сообщение, если оно будет, просто убираем из кода 2>nul:

Код:

@ECHO OFF
(REG DELETE "HKCU\Software\*****" /V "***" /F&&ECHO Message 1)||ECHO Message 2
PAUSE>nul

.

Iska 05-06-2013 05:06 2162475

Я вообще не вижу смысла в:
Цитата:

Цитата Sfero_ID
вывести сообщение1 если параметр найден и удалён, или сообщение2 если параметр не существует. »

поскольку конечный результат и в том, и в другом случае одинаков. Бессмысленно.

Вот если параметр существует, но удалить не удалось — тогда другое дело.

Sfero_ID 05-06-2013 14:50 2162780

Цитата:

Цитата Iska
Вот если параметр существует, но удалить не удалось — тогда другое дело. »

Согласен, немного не так сформулировал... Параметр удалится только в Безопасном режиме, поэтому и нужно сообщение о запуске bat файла в безопасном режиме. А как тогда сделать сообщение1, если параметр удалён или не существует, и сообщение2, если параметр существует, но удалить его не удалось?

Или проще:
Цитата:

Цитата Sfero_ID
возможно ли, если bat файл запущен в обычном режиме Windows, вывести сообщение об этом? »


Iska 05-06-2013 15:25 2162798

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.

Время: 11:32.
© OSzone.net 2001-