如果电源计划已存在,则执行 if 命令来编写脚本

问题描述 投票:0回答:1

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

基本上,我有两个计划任务,当笔记本电脑通过电源充电器连接/断开连接时运行(通过事件 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 是否已经存在。

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

感谢对此的任何帮助!

如上所述。

batch-file powercfg
1个回答
0
投票

您检查

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%
© www.soinside.com 2019 - 2024. All rights reserved.