如果电源计划已存在,则实现 if 命令以编写脚本

Implement if command to script if power plan already exists

提问人:Carl_Allen96 提问时间:11/15/2023 更新时间:11/15/2023 访问量:24

问:

我的脚本技能非常有限,所以希望有人能在这里提供帮助。

基本上,我有两个计划任务,当笔记本电脑通过电源充电器连接/断开连接时运行(通过事件 ID 105),而电源充电器又运行脚本来设置电源计划。

例如,当电源充电器连接时,将运行以下蝙蝠脚本:

' powercfg /导入 C:\System\Win\Power_Plan_Ultimate_Performance\Balanced_Power_Plan\Balanced_Power_Plan.pow 381b4222-f694-41f0-9685-ff5bb260df2e PowerCFG /setActive 381B4222-F694-41F0-9685-FF5BB260DF2E '

首先,导入电源计划,然后进行设置。

但是,我注意到,如果电源计划已经导入,则在运行脚本时,电源计划将被删除,然后当然无法设置。再次运行它,然后导入,然后设置它。

这就是我的问题。似乎如果已经导入了电源计划,则导入命令似乎会将其删除。

有没有办法运行“if”命令,如果已经导入了电源计划,则跳过第一个 powercfg /import 命令并直接进入“powercfg 'setactive'。

我的想法是可以先运行“powercfg /list”以查看 GUID 是否已经存在。

如果不存在,则进行导入。

感谢任何帮助!

如上所述。

批处理文件 powercfg

评论


答:

0赞 GrumpyCrouton 11/15/2023 #1

你的检查解决方案对我来说似乎很可靠。像这样的东西powercfg /list

@echo off
set "powerPlanGUID=381b4222-f694-41f0-9685-ff5bb260df2e"

rem Check if the power plan is already imported
powercfg /list | find /i "%powerPlanGUID%" && (
    echo Power plan already imported
) || (
    echo Power plan not imported, importing now...
    powercfg /import C:\System\Win\Power_Plan_Ultimate_Performance\Balanced_Power_Plan\Balanced_Power_Plan.pow %powerPlanGUID%
)

rem Set the active power plan
powercfg /setactive %powerPlanGUID%

评论

1赞 Carl_Allen96 11/16/2023
完美,完全符合预期!非常感谢!