对字符串使用split,结果变成了2个数组,就离谱。
const iconv = require('iconv-lite')
var child = child_process.spawn("powercfg",["/list"])
child.stdout.on('data', data => {
var res = iconv.decode(data, 'cp936')
var opt = res.split('\n')
console.log(opt)
quickcommand.showSelectList(opt).then(choise => {
var id = choise.text.match(/[a-z0-9]*-[a-z0-9]*-[a-z0-9]*-[a-z0-9]*-[a-z0-9]*/)
system("powercfg -s " + id[0])
console.log(`已切换为${choise.text}`)
})
})
命令行会返回:
现有电源使用方案 (* Active)
-----------------------------------
电源方案 GUID: 0df3711f-215d-4069-919c-3356399372af (高性能) *
电源方案 GUID: 11297ad2-318b-4ad3-acc9-ece9b417f9bf (NAS模式)
电源方案 GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (平衡)
电源方案 GUID: 3ab92031-f8c8-44cd-ab42-c8dc27225faf (节能)
电源方案 GUID: 51482532-02ae-4e60-8cfb-176ad524c0e5 (极限节能)
本意是对返回进行split后传入showselectList中,进行选择,从而切换电源模式。
但是split后,变成了2个数组,不知道什么原理
这样传入选项就显示不正确了,代码里也访问不了第二个数组。