我的脚本技能非常有限,所以希望有人能在这里提供帮助。
基本上,我有两个计划任务,当笔记本电脑通过电源充电器连接/断开连接时运行(通过事件 ID 105),而电源充电器又运行脚本来设置电源计划。
例如,当连接主电源充电器时,将运行以下 bat 脚本:
' 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 /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%