请解释这个bat文件

时间:2016-01-26 19:37:46

标签: windows batch-file

For /f "skip=2 tokens=2,4 delims=:()" %%G in ('powercfg -list') do (
 Powercfg -setAcValueIndex %%G sub_buttons sButtonAction 0
 if "%%H" == " *" Powercfg -setActive %%G
 )

有人可以向我解释一下吗?

我知道它正在改变Windows PC的powercfg。但不知道这意味着什么。

1 个答案:

答案 0 :(得分:1)

tokens=2,4命令的for选项会分配变量%G%H。引自文档:

  

令牌= X,Y,M-N
  指定每次迭代时将每行中的哪些标记传递给 for 正文。因此,会分配 其他 变量名称。 m-n 形式是一个范围,通过 n 标记指定 m 。如果tokens=字符串中的最后一个字符是星号(*),则会分配另一个变量,并在解析的最后一个标记之后接收该行上的剩余文本。

该脚本从powercfg读取报告并查找某些信息,将其中一个配置文件设置为活动。正如所建议的那样,逐步分开将是一个很好的练习。

这是一张显示某人电源配置的图片:

enter image description here

通过对分隔符使用冒号和括号,解析器会忽略它们(将它们视为间隙),因此脚本将选择(允许列计数...)以*结尾的那个(&#) 34;高性能"在图片中)。当然,你的照片可能有所不同。

进一步阅读:

  • for - 为一组文件中的每个文件运行指定的命令。
  • powercfg - 控制电源设置并将计算机配置为默认为休眠或待机模式