怎么用脚本实现延时关机

wen 实用脚本 2

本文目录导读:

怎么用脚本实现延时关机

  1. 方案一:Windows 批处理脚本(.bat)
  2. 方案二:Linux / macOS 脚本(.sh)
  3. 方案三:Python 脚本(跨平台免费版)
  4. 快捷小技巧:命令行直输(无需脚本)
  5. 注意事项

Windows 批处理脚本(.bat)

这是最常用的方式,利用系统自带的 shutdown 命令。

@echo off延时关机小工具
color 0A
:: 设置默认延时时间(秒),这里设置 3600 秒 = 1 小时
set /a delay_seconds=3600
:: 询问用户是否修改时间
echo 当前设置为 %delay_seconds% 秒(%delay_seconds%/60 分钟)后关机。
set /p choice=是否修改时间?(Y/N,直接回车默认N): 
if /i "%choice%"=="Y" (
    set /p delay_seconds=请输入延时秒数(300 表示5分钟): 
)
:: 执行延时关机
echo 系统将在 %delay_seconds% 秒后自动关机。
shutdown /s /t %delay_seconds%
:: 提示取消方法
echo 如需取消,请按 Win+R 输入 shutdown /a 回车,或在命令提示符中执行。
pause

如何使用:

  1. 将以上代码复制到记事本。
  2. 保存为 延时关机.bat(注意后缀是 .bat)。
  3. 双击运行,按提示操作即可。

Linux / macOS 脚本(.sh)

Linux 和 macOS 下使用 shutdown 命令。

#!/bin/bash
# 延时关机脚本 (需 root 权限运行,使用 sudo)
# 用法: ./delay_shutdown.sh [分钟] 或 [秒]
# 默认延时 30 分钟(1800 秒)
DEFAULT_MIN=30
echo "========================================="
echo " Linux/macOS 延时关机脚本"
echo "========================================="
# 询问用户输入分钟数
read -p "请输入延时分钟数(默认 ${DEFAULT_MIN} 分钟): " input_min
# 如果用户直接回车,使用默认值
if [ -z "$input_min" ]; then
    input_min=$DEFAULT_MIN
fi
# 转换为秒
delay_seconds=$((input_min * 60))
echo "系统将在 ${input_min} 分钟后(${delay_seconds} 秒)关机。"
echo "如需取消,请在终端中输入: sudo shutdown -c"
# 执行延时关机
sudo shutdown -h +$input_min
# 如果不希望倒计时,可以用 sleep 实现精确到秒(较少用)
# sleep $delay_seconds && sudo shutdown now

如何运行:

# 赋予执行权限
chmod +x delay_shutdown.sh
# 运行(需要管理员权限)
sudo ./delay_shutdown.sh

Python 脚本(跨平台免费版)

如果您安装了 Python(在 Windows、Linux、macOS 均可),可以创建一个更“智能”的跨平台脚本。

import os
import sys
import time
import platform
def delay_shutdown():
    # 获取操作系统
    system = platform.system()
    print("=" * 40)
    print(" 跨平台延时关机工具")
    print("=" * 40)
    # 输入延时时间
    try:
        minutes = float(input("请输入延时分钟数(30): "))
        if minutes <= 0:
            print("请输入正数!")
            return
    except ValueError:
        print("输入无效,请输入数字!")
        return
    delay_seconds = int(minutes * 60)
    print(f"\n系统将在 {minutes:.2f} 分钟后({delay_seconds} 秒)自动关机。")
    print("如需取消:")
    if system == "Windows":
        print("  请运行: shutdown /a")
    else:
        print("  请运行: sudo shutdown -c")
    # 执行关机(Windows 用 /s,Linux/mac 用 -h)
    try:
        if system == "Windows":
            os.system(f"shutdown /s /t {delay_seconds}")
        elif system == "Linux" or system == "Darwin":  # Darwin 是 macOS
            # 需要 root 权限,使用 sudo
            os.system(f"sudo shutdown -h +{int(minutes)}")
        else:
            print("不支持的操作系统")
    except Exception as e:
        print(f"执行出错: {e}")
if __name__ == "__main__":
    delay_shutdown()

运行方法:

python3 delay_shutdown.py

快捷小技巧:命令行直输(无需脚本)

如果您只是临时用一次,直接在系统命令行输入即可:

  • Windows(CMD):
    shutdown /s /t 3600 (3600秒=1小时后关机) shutdown /a 取消

  • Linux/macOS(终端):
    sudo shutdown -h +60 (60分钟后关机) sudo shutdown -c 取消


注意事项

  • Windows/t 参数最大支持 315360000 秒(约 10 年),一般够用。
  • Linux/macOSshutdown -h +X 中的 X 代表分钟。
  • 如果您的电脑有未保存的工作,请提前保存,关机时系统会强制关闭未保存程序。
  • 如果是服务器使用,建议设置 cron 定时任务来实现每日或每周的定时关机(不是延时多久,而是具体时间点)。

如果您需要特定的功能(比如按具体时间点关机、周期性重启等),请告诉我,我可以为您调整脚本。

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