-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 afterPossible Maximum Possible minimumその下には、現在の設定のブロック値のような値とさらに下の値があるはずです。

これが部分的な答えである理由です...出力を解析する方法がわかりません。しかし、他の誰かがそれを手伝ってくれると確信しています:)

于 2016-09-21T06:19:28.513 に答える