如何使用Powercfg设置活动计划而不使用GUID?

时间:2016-09-26 17:25:08

标签: cmd powercfg

我写了一个批处理文件,使用powercfg导入自定义电源计划。它可以运行但是在运行脚本之后,我必须进入Windows电源计划并手动选择它的计划以使其变为活动状态。

我更喜欢选择是否可以在批处理文件中完成但是由于GUID随着每次导入而改变,我不能在批处理文件中使用GUID。

激活新导入的电源计划的最佳powercfg语法是什么?我的最终目标是让最终用户能够运行批处理文件而无需进入命令提示符。

我喜欢findtr方法。我必须做错事,因为电源计划没有改变我的导入计划。我在这做错了什么?非常感谢!

@echo off

powercfg -import“%UserProfile%\ Desktop \ Powercfg CMIT Defalut \ CMIT Win10 Power Plan.pow”2>的错误 .txt的

如果%errorlevel%NEQ 0(   echo失败   输入错误 .txt )其他(     回声。 ) 暂停

for / f“tokens = 4”%f in('powercfg -list ^ | findstr / C:“CMIT Win10 Power Plan”')设置GUID =%f

3 个答案:

答案 0 :(得分:1)

此命令捕获当前有效的电源计划

for /f "tokens=4 skip=1" %%f in ('powercfg -list ^| findstr \*') do set GUID=%%f
echo %GUID%

说明

powercfg的输出结果如下:

C:\temp\Batches>powercfg -list

Existing Power Schemes (* Active)
-----------------------------------
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (HP Recommended) *
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (High performance)
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (Power saver)

找到带星号的行。

C:\Users\Paul>powercfg -list | findstr \*
Existing Power Schemes (* Active)
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (HP Recommended) *

循环输出,跳过第1行,抓取第4个标记,将其保存到guid环境变量。

for /f "tokens=4 skip=1" %%f in ('powercfg -list ^| findstr \*') do set GUID=%%f

或者,您可以通过将参数更改为findstr

来按名称搜索
for /f "tokens=4" %%f in ('powercfg -list ^| findstr /C:"Power saver"') do set GUID=%%f 

这已经提取了GUID。要激活计划,请执行以下操作:

powercfg /setactive %GUID%

答案 1 :(得分:0)

你可以让事情变得更轻松。 首先安装一个不同的模式,然后添加新模式并使其处于活动状态。这是一个例子 -

powercfg -restoredefaultschemes
POWERCFG -SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
copy "powersheme\\weg.pow" "C:\\weg.pow"
POWERCFG -DELETE 381b4222-f694-41f0-9685-ff5bb260df2e
pause
POWERCFG -IMPORT C:\weg.pow 381b4222-f694-41f0-9685-ff5bb260df2e
del C:\weg.pow
POWERCFG -SETACTIVE 381b4222-f694-41f0-9685-ff5bb260df2e
msg * power sheme instal
pause

他自己最近在200 pc上一次更改设置感到困惑)))

答案 2 :(得分:0)

我在导入时更改GUID时遇到了同样的问题,但是了解到,只有在导入时未在文件名后指定GUID的情况下,GUID才会更改。这对我有用:

powercfg /import c:\temp\Power\NeverSleep.pow a81a33c9-6d83-493e-a38d-d5fa3c620915
powercfg /setactive a81a33c9-6d83-493e-a38d-d5fa3c620915