比较复杂的一个关机重启bat代码。
@ECHO Off
set VON=false
if %VON%==false (
    set VON=true
    if !VON! NEQ true cmd /V:ON /K %0   
)
REM MS-DOS命令从英文状态转到中文状态
GrafTabl /status |find "936" >nul
if %ErrorLevel% NEQ 0 GrafTabl 936 > nul

:start
CLS
COLOR 1f
rem 使用COLOR命令对控制台输出颜色进行更改
MODE con: COLS=41 LINES=18
rem MODE语句为设定窗体的宽和高
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO %date% %tm1%点%tm2%分%tm3%秒
ECHO =========================================
ECHO 请选择要进行的操作,然后按回车
ECHO ───────────────
ECHO.
ECHO 1. 重启机器
ECHO 2. 关机
ECHO 9. 退出
ECHO.

:cho
SET Choice=
SET /P Choice=选择:
rem 设定变量"Choice"为用户输入的字符
IF NOT "%Choice%"=="" (SET Choice=%Choice:~0,1%) ELSE GOTO START
rem 如果输入大于1位,取第1位,比如输入132,则返回值为1
ECHO.
IF /I "%Choice%"=="1" GOTO REBOOT
IF /I "%Choice%"=="2" GOTO SHUT
IF /I "%Choice%"=="9" GOTO end
rem 为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号
rem 注意,IF语句需要双等于号
rem 如果输入的字符不是以上数字,将返回重新输入
ECHO 选择无效,请重新输入
ECHO.
GOTO cho



:REBOOT
ECHO   您真的要重启本机器吗?
ECHO.
ECHO.
SET Choice=
SET /P Choice=重启请输入“REBOOT”:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,6%
IF /I "%Choice%"=="REBOOT" SHUTDOWN -R
GOTO START

:SHUT
ECHO   您真的要关闭本机器吗?
ECHO.
ECHO.
SET Choice=
SET /P Choice=重启请输入“SHUTDOWN”:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,8%
ECHO.
IF /I "%Choice%"=="SHUTDOWN" SHUTDOWN -S
GOTO START



:DISPLAY
CLS
COLOR 3f
rem 使用COLOR命令对控制台输出颜色进行更改
MODE con: COLS=80 LINES=30
GOTO start

:END
把以上代码用记事本保存后更名为“关机.bat”

以下是Windows系统关机/重启的常用代码实现及详细说明,适用于命令行和编程开发场景:


一、基础命令行操作

  1. 立即关机
    命令:shutdown /s /t 0

    • /s:关机指令
    • /t 0:延迟0秒立即执行
      示例:shutdown /s /t 0
  2. 定时关机
    命令:shutdown /s /t [秒数]

    • 示例:shutdown /s /t 60(60秒后关机)
  3. 立即重启
    命令:shutdown /r /t 0

    • /r:重启指令
      示例:shutdown /r /t 0
  4. 取消计划操作
    命令:shutdown /a

    • 需在倒计时结束前执行

二、编程实现示例

  1. Python脚本

    import os os.system("shutdown /s /t 0") # 关机 os.system("shutdown /r /t 10") # 10秒后重启

    引用os模块直接调用系统命令

  2. C#代码

    using System.Diagnostics; Process.Start("shutdown.exe", "/s /f /t 0"); // 强制关机 Process.Start("shutdown.exe", "/r /t 60"); // 60秒后重启

    通过Process类调用shutdown.exe程序


三、高级功能

  1. 强制终止应用程序
    添加/f参数强制关闭未响应程序:
    shutdown /s /f /t 0

  2. 远程控制其他计算机
    使用/m \\计算机名或IP参数:
    shutdown /r /m \\192.168.1.100 /t 0

  3. 计划任务结合
    通过schtasks命令创建定时任务,例如每天23点关机:
    schtasks /create /tn "AutoShutdown" /tr "shutdown /s" /sc daily /st 23:00


四、注意事项

  • 权限要求‌:部分操作需以管理员身份运行命令行或程序
  • 参数兼容性‌:shutdown命令在Windows XP及以上系统通用
  • 日志记录‌:关机/重启操作会在系统日志中生成记录