我想创建一个批处理文件来检查当前系统电源模式并在必要时进行更改。我有以下情况。我做错了什么?(它不起作用)
@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
根据我编写批处理文件脚本的经验,如果即使在应该暂停的情况下它仍然退出,则意味着存在导致它崩溃的错误。在这种情况下,我认为这是一些语法问题,以及您如何设置变量。我尝试了一下并让它工作:
@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 命令。有关 for 循环语法(或一般批处理语法)的更多信息:http://ss64.com/nt/for_f.html