4

Я хотел бы создать командный файл, который проверяет текущий режим питания системы и изменить его при необходимости. У меня есть следующее. Что я делаю неправильно? (это не работает)

@ECHO OFF

SET _CURRENT_POWER_SCHEME = POWERCFG -GETACTIVESCHEME

IF NOT %_CURRENT_POWER_SCHEME% == "Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (Balanced)"(
    POWERCFG -SETACTIVE "381b4222-f694-41f0-9685-ff5bb260df2e"

)

Спасибо за помощь.

1 ответ1

3

Исходя из моего опыта работы со скриптами пакетных файлов, если он завершается, даже если у вас есть ПАУЗА, которая должна получить удар, это означает, что есть ошибка, которая вызывает его сбой. В этом случае я думаю, что это несколько проблем с синтаксисом, а также как вы устанавливаете переменную. Я поиграл и получил это на работу:

@ECHO off
FOR /f "delims=" %%a in ('POWERCFG -GETACTIVESCHEME') DO @SET _CURRENT_POWER_SCHEME="%%a"
IF NOT %_CURRENT_POWER_SCHEME%=="Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (Balanced)" POWERCFG -SETACTIVE "381b4222-f694-41f0-9685-ff5bb260df2e"

Строка «For /f ...» обычно является командой, которую я использую, чтобы получить выходные данные другой команды в переменную. Обычно он предназначен для анализа более сложных ответов, но в этом случае он обрабатывает команду -GETACTIVE. Для получения дополнительной информации о синтаксисе цикла (или синтаксисе пакета в целом): http://ss64.com/nt/for_f.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .