-2

我有一个批处理文件,它会在 0 分钟后自动将计算机设置为睡眠状态(也就是永不睡眠)。然后我想把它恢复到以前的样子。我的问题是如何在关闭它之前将当前睡眠时间设置为变量?提前致谢!

澄清:我是批处理的新手,所以请随时指出一些事情。这是我当前的脚本:

@echo off
tasklist /v | find "Server" > nul

if errorlevel 1 (
    title Server
    set "time=[WHAT DO I PUT HERE?]" ::Gather current value for "put the computer to sleep:"
    C:
    cd C:windows\system32\powercfg.exe -change -standby-timeout-ac 0 ::Set the computer's sleep time to 0 (off)
    D:
    cd D:/Users/Elijah/Desktop/Tekkit_Server_v1.2.9g/ ::Do tasks
    java -Xmx12G -Xms10G -jar Tekkit.jar nogui
    cd C:windows\system32\powercfg.exe -change -standby-timeout-ac %time% ::When that's done, change the sleep setting back to what it was before we set it to 0
    title Server [STOPPED]
    pause
) else ( ::If bad stuff happens
    title Server [FAILED]
    echo A server is already running
    pause
)

我想将此脚本用于 Minecraft 服务器的一些自动化。当我从我的计算机运行服务器时,我必须在控制面板中将“让计算机进入睡眠状态”设置更改为 0 分钟。我已经在脚本中进行了设置,但现在我的问题是重新打开自动睡眠并设置为以前的状态。所以要做到这一点,我想将值存储在一个名为time. 我该怎么做?

4

1 回答 1

1

部分答案:

试试看powercfg -list。这将提供保存在您计算机上的能源方案列表。复制您需要的模式的 ID(如果有多个)。接下来,您想获得另一个 ID:powercfg -aliases您将获得 GUID 列表和它们后面的文本。查找SUB_SLEEP并复制该 ID。
现在运行该命令powercfg -q <1stID> <2ndID>将输出更多列表,您要在其中查找类似Sleep after. Possible Maximum Possible minimum在此之下,当前设置的该块值中应该有类似和更远的值。

这就是为什么它是部分答案......我不知道如何解析输出。但我相信其他人会帮助你:)

于 2016-09-21T06:19:28.513 回答