运行脚本后 PC 无法进入睡眠/唤醒状态

运行脚本后 PC 无法进入睡眠/唤醒状态

我受够了我的 PC 似乎以随机间隔从睡眠状态唤醒,并做了所有常规操作,禁用唤醒计时器、任务计划、禁止 LAN 和其他设备、运行 powercfg /sleepstudy 等,但无济于事。

我找到了一些禁用所有唤醒计时器的脚本并运行了它们:

Get-ScheduledTask | ? { $_.Settings.WakeToRun -eq $true -and $_.State -ne "Disabled"} | % { $_.Settings.WakeToRun = $false; Set-ScheduledTask $_ }

不幸的是,我还运行了一个脚本来禁止任何设备唤醒 PC,这似乎会暂停睡眠命令,直到按下按键然后将其完全关闭:

(/F "tokens=*" %A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%A"

这会产生几个错误。

尽管我能理解其中的大部分内容,但我没有编程技能来编写脚本来纠正它:-(

这里有人可以帮忙吗?(目前无法恢复系统映像 - 我把我的备份驱动器+盒借给了一个不在家的朋友)(好吧 - 我是 Muppett)

编辑: 好的 - 我跑了
附注 C:\WINDOWS\system32>@echo off

对于/F“tokens=*”%%A 在('powercfg -devicequery wake_armed')中执行(powercfg -devicedisablewake“%%A”)
这给出了关键字“for”后缺少“(”的错误。因此,我输入了一个:
PS C:\WINDOWS\system32>@echo off for (/F “tokens=*” %%A 在 ('powercfg -devicequery wake_armed') 中执行 (powercfg -devicedisablewake “%%A” )。
这似乎有效,尽管我仍然不明白为什么,因为似乎有一个“(”太多了

编辑 2 有没有办法逆转它?我可以直接替换吗-设备禁用唤醒和 -设备启用唤醒

答案1

这会产生几个错误。

让我们一步一步地修复它。

> (/F "tokens=*" %A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%A"
do was unexpected at this time.

第一个(不应该在那里。

> /F "tokens=*" %A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%A"
'/F' is not recognized as an internal or external command,
operable program or batch file.

for開始時缺了個。

从命令行它将仅评估第一个结果,因此您需要使用批处理文件。

需要将批处理文件中的%s 替换为s。%%

使用以下批处理文件:

@echo off
for /F "tokens=*" %%A in ('powercfg -devicequery wake_armed') do (
  powercfg -devicedisablewake "%%A"
  )

进一步阅读

相关内容