怎么用脚本控制电源选项

wen 实用脚本 3

本文目录导读:

怎么用脚本控制电源选项

  1. Windows 系统
  2. Linux 系统
  3. macOS 系统
  4. 跨平台解决方案
  5. 高级用法
  6. 注意事项

要用脚本控制电源选项(如关机、重启、休眠、睡眠、更改电源计划等),可以根据你的操作系统选择合适的脚本语言,以下是主要方法:

Windows 系统

PowerShell 脚本(最推荐)

基本电源操作:

# 关机
Stop-Computer
# 重启
Restart-Computer
# 休眠
shutdown /h
# 睡眠(需要管理员权限)
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)
# 锁定
rundll32.exe user32.dll,LockWorkStation

电源计划管理:

# 查看所有电源计划
powercfg /list
# 设置电源计划(使用GUID)
powercfg /setactive GUID
# 创建自定义电源计划
powercfg /duplicatescheme GUID

定时任务:

# 定时关机(3600秒后)
shutdown /s /t 3600
# 取消定时关机
shutdown /a

Batch 批处理脚本

@echo off
:: 关机
shutdown /s /t 0
:: 重启
shutdown /r /t 0
:: 休眠
shutdown /h
:: 锁定
rundll32.exe user32.dll,LockWorkStation
:: 注销
shutdown /l

VBScript

' 创建 WMI 对象
Set objShell = CreateObject("WScript.Shell")
' 关机
objShell.Run "shutdown /s /t 0"
' 重启
objShell.Run "shutdown /r /t 0"
' 休眠
objShell.Run "shutdown /h"
' 睡眠
objShell.Run "rundll32.exe powrprof.dll,SetSuspendState 0,1,0"

Linux 系统

Bash 脚本

#!/bin/bash
# 关机
sudo shutdown -h now
# 或
sudo poweroff
# 重启
sudo shutdown -r now
# 或
sudo reboot
# 休眠
sudo systemctl hibernate
# 睡眠
sudo systemctl suspend
# 混合睡眠
sudo systemctl hybrid-sleep

定时任务

#!/bin/bash
# 30分钟后关机
sudo shutdown -h +30
# 取消定时关机
sudo shutdown -c

macOS 系统

Bash 脚本

#!/bin/bash
# 关机
sudo shutdown -h now
# 重启
sudo shutdown -r now
# 睡眠
sudo pmset sleepnow
# 锁定
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

定时任务

# 设置定时关机(每天23点关机)
sudo pmset repeat shutdown MTWRFSU 23:00:00
# 取消所有定时
sudo pmset repeat cancel

跨平台解决方案

Python 脚本(跨平台)

import os
import platform
import subprocess
def power_action(action):
    system = platform.system()
    if system == "Windows":
        actions = {
            "shutdown": "shutdown /s /t 0",
            "restart": "shutdown /r /t 0",
            "hibernate": "shutdown /h",
            "sleep": "rundll32.exe powrprof.dll,SetSuspendState 0,1,0",
            "lock": "rundll32.exe user32.dll,LockWorkStation"
        }
    elif system == "Linux":
        actions = {
            "shutdown": "sudo shutdown -h now",
            "restart": "sudo shutdown -r now",
            "hibernate": "sudo systemctl hibernate",
            "sleep": "sudo systemctl suspend"
        }
    elif system == "Darwin":  # macOS
        actions = {
            "shutdown": "sudo shutdown -h now",
            "restart": "sudo shutdown -r now",
            "sleep": "sudo pmset sleepnow"
        }
    else:
        print(f"不支持的系统: {system}")
        return
    if action in actions:
        os.system(actions[action])
    else:
        print(f"不支持的操作: {action}")
# 使用示例
power_action("shutdown")
power_action("restart")

高级用法

带确认的脚本

#!/bin/bash
# 带确认的关机脚本
echo "系统将在10秒后关机..."
echo "按 Ctrl+C 取消"
for i in $(seq 10 -1 1); do
    echo "剩余 $i 秒..."
    sleep 1
done
sudo shutdown -h now

条件判断脚本

#!/bin/bash
# 在特定时间后关机
current_hour=$(date +%H)
if [ "$current_hour" -ge 23 ]; then
    echo "时间已晚,即将关机..."
    sudo shutdown -h now
else
    echo "还不到关机时间"
fi

注意事项

  1. 管理员权限:大多数电源操作需要管理员/root权限
  2. 保存工作:关机前确保保存所有工作
  3. 系统差异:不同Linux发行版命令可能略有差异
  4. 安全考虑:不要在生产环境中随意使用
  5. 日志记录:建议记录操作日志便于排查问题

选择哪种方式取决于你的具体需求、操作系统和个人偏好,PowerShell 和 Bash 是最常见的选择。

抱歉,评论功能暂时关闭!