使用powercfg复制当前有效的电源方案

Sam*_*eet 3 command-line batch-file powercommands

我需要运行一个批处理文件,使用一系列powercfg命令来复制当前活动的方案并重命名它.

手动,我会在命令提示符下做这样的事情.

powercfg -getactivescheme
Run Code Online (Sandbox Code Playgroud)

这将给我当前活动方案的GUID.

powercfg -duplicatescheme <GUID obtained above> <new GUID>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想做这样的事......

powercfg -duplicatescheme -getactivescheme <new GUID>
Run Code Online (Sandbox Code Playgroud)

但由于这是不允许的,还有另外一种方法吗?

Joe*_*oey 5

好吧,首先你需要从输出中提取出GUID powercfg.这可以使用以下for命令完成:

for /f "tokens=2 delims=:(" %%x in ('powercfg -getactivescheme') do echo %%x
Run Code Online (Sandbox Code Playgroud)

这只会输出GUID,您也可以将其保存在变量中:

for /f "tokens=2 delims=:(" %%x in ('powercfg -getactivescheme') do set guid=%%x
Run Code Online (Sandbox Code Playgroud)

你可能想要从中删除额外的空格(这里我在行的前面有一个空格,最后是另外两个空格:

set guid=%guid: =%
Run Code Online (Sandbox Code Playgroud)

既然你有了GUID,你可以把它放到上面的命令行中:

powercfg -duplicatescheme %guid% <new GUID>
Run Code Online (Sandbox Code Playgroud)

您只需要考虑一个新的GUID.我不知道一个包含的命令行程序,它为您生成一个.

注意:这里的代码(特别是for部分)假定您在批处理文件中执行此操作.要直接在命令行上玩游戏,您必须使用%x而不是%%xfor命令中.