我有一个脚本的开头,它将执行以下操作:
powercfg /L >> c:\folder\powercfglst.txt
这给了我一个包含以下内容的文件。
*Existing Power Schemes (* Active)
-----------------------------------
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260aaaa (Power Management Plan)
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)
Power Scheme GUID: 49ef8fc0-bb7f-488e-b6a0-f1fc77ec649b (Dell)
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance)
Power Scheme GUID: 9f232b21-3864-4cf2-be7e-9a7ec8c2db7d (AEM) *
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a (Power saver)*
我需要一个脚本来解析 GUID# 并将其放入另一个文件中,或者使原始文件仅列出 guid#。
然后我计划删除所有 powercfg,然后导入自定义的 powercfg,并使其处于活动状态
任何帮助都将受到赞赏。
答案1
如果您只想提取/解析 GUID,您可以尝试以下操作:
$regex = '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}'
(powercfg /l) -split " " -match $regex > myGUID.txt
myGUID.txt 的内容(对于我的电脑)
381b4222-f694-41f0-9685-ff5bb260df2e
49ef8fc0-bb7f-488e-b6a0-f1fc77ec649b
答案2
$(powercfg /L)-match ':'|%{$_.split(" ")[3]}
您可以通过简单地按空格过滤输出字符串来获得它,您的字符串位于包含以下内容的行的第 3 次出现中":"
$(powercfg.exe /L) -match ':' | % {
$_.split(" ")[3] } >>C:\folder\powercfglst.txt
- C:\folder\powercfglst.txt 的内容...
381b4222-f694-41f0-9685-ff5bb260df2e
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
a1841308-3541-4fab-bc81-f71556f20b4a
e9a42b02-d5df-448d-aa00-03f14749eb61