arquivo em lotes para detectar e definir o modo de energia do Windows 7

4

Gostaria de criar um arquivo em lote que verifique o modo de energia atual do sistema e altere-o, se necessário. Eu tenho o seguinte. O que estou fazendo de errado? (não funciona)

@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"

)

Obrigado pela ajuda.

    
por Kovo 01.08.2012 / 06:43

1 resposta

3

Da minha experiência com o script de arquivo em lote, se ele sair mesmo quando você tiver uma PAUSA que deve ser atingida, isso significa que há um erro que causa falha. Neste caso, acho que são alguns problemas de sintaxe, bem como a forma como você está configurando a variável. Eu brinquei e fiz isso funcionar:

@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"

A linha "Para / f ..." é geralmente o comando que eu uso para obter a saída de outro comando em uma variável. É normalmente para análise por meio de respostas mais complexas, mas manipula o comando -GETACTIVE nesse caso. Para obter mais informações sobre a sintaxe do loop for (ou a sintaxe de lote em geral): link

    
por 01.08.2012 / 20:57