Skip to content

Instantly share code, notes, and snippets.

@cycold
Created May 9, 2014 08:46
Show Gist options
  • Save cycold/1efaadf21f5d96e93d1e to your computer and use it in GitHub Desktop.
Save cycold/1efaadf21f5d96e93d1e to your computer and use it in GitHub Desktop.
windows关机前的确认脚本
@echo off
rem 更改cmd客户端字符集为UTF8
rem (如果要更改cmd字符集,需要在cmd命令行中手动输入chcp 65001 写在批处理文件中无效 并且只是对当前的cmd窗口有效 chcp
rem 批处理乱码一般都是字符集不对, 一般批处理都使用ANSI编码最好936为GBK cmd中文默认字符集)
rem chcp 65001
rem shutdown -s -t 300 延迟300秒后关机
rem 设置延迟变量赋值
setlocal enabledelayedexpansion
echo 关机前确认:
goto task1
:task1
echo 1.有备份数据?(y/n)
rem /p 接收用户输入
set chooseResult=1
set /p chooseResult=
rem /i 表示忽略大小写
rem 这里一定要注意if命令中带有子命令,那么else一定要与if中的最后的一条命令在同一行 要不会出错
if /i '%chooseResult%'=='y' ( echo ok!
goto task2 ) else (
echo 程序即将推出以备份数据!
rem shutdown -a
ping -n 3 127.1>nul
exit
)
:task2
echo 2.关机后记得关闭显示器?(y/n)
rem /p 接收用户输入
set chooseResult=1
set /p chooseResult=
rem /i 表示忽略大小写
rem 这里一定要注意if命令中带有子命令,那么else一定要与if中的最后的一条命令在同一行 要不会出错
if /i '%chooseResult%'=='y' ( echo ok!
goto task3 ) else ( goto task2
)
:task3
echo 3.记得打卡?(y/n)
rem /p 接收用户输入
set chooseResult=1
set /p chooseResult=
rem /i 表示忽略大小写
rem 这里一定要注意if命令中带有子命令,那么else一定要与if中的最后的一条命令在同一行 要不会出错
if /i '%chooseResult%'=='y' ( echo ok!
echo 即将关闭计算机...
shutdown -s -t 300 ) else ( goto task3
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment