使用批处理命令实现一键休眠

在某个文件夹下创建一个文本文件,修改该文件名为sleep.bat
方式1:

@echo off
:begin
echo 请输入以下数字,确认对应操作:
echo 1.休眠
echo 2.睡眠
echo 其他任意键退出
set /p step=

if %step% == 1 start rundll32.exe powrProf.dll,SetSuspendState
if %step% == 2 start rundll32.exe powrprof.dll,SetSuspendState 0,1,0

:end

方式2:

@echo off
:begin
choice /c:12 /m:"休眠请选1,睡眠请选2,任意其他键取消。"
if %errorlevel%==1 goto oneStep
if %errorlevel%==2 goto twoStep
pause 
exit

:oneStep
start rundll32.exe powrProf.dll,SetSuspendState
pause 
exit
:twoStep
start rundll32.exe powrprof.dll,SetSuspendState 0,1,0
pause 
exit
:end

执行:
1。你可以双击该sleep.bat执行
2。或者鼠标右键执行
3。我比较喜欢在运行(win+R)中执行,当然,先得确保你的批处理文件所在目录处于环境变量中。
这里写图片描述
这里写图片描述

命令介绍
1。rem 注释内容(不能出现重定向符号和管道符号)
2。:: 注释内容(不能出现重定向符号和管道符号)
3。echo 注释内容(不能出现重定向符号和管道符号)
4。goto 流程跳转
一般的批处理命令,都是按照自上而下的流程逐行执行的,goto通常配合标签段(:)使用。
流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。
在首行上以单个冒号打头,其后紧跟一串字符,第二行及其之后的所有行为代码语句行。在这里,第一行的冒号是标签标志,紧跟它之后的字符串是标签名,两者合称标签。goto语句后面的部分为标签名,指引着该语句执行完之后该跳到转何方,标签则接收goto语句的跳转指令,引导着goto语句的后续操作。goto语句和标签互相呼应,在实现流程跳转时相辅相成,缺一不可。
1、goto语句和标签要互相呼应,不能只有goto语句而没有相应的标签段,否则,程序将找不到相应的标签段而直接退出;只有标签段而没有goto语句是允许的,但不能实现流程跳转功能,从代码精简的角度来看,有标签段而没有goto语句,则此标签是多余的,可以精简掉;
 2、若有多个标签段,则需要注意标签段之间是否需要添加合适的退出语句来终止程序继续向下执行,这是很多新手很容易犯错的地方,需要谨慎。
 3、标签名只可以使用常量,而不能使用变量;
 4、若有同名的标签段,将执行位于最顶层的标签段,其后的标签段是否得到执行,将视具体的情况加以处理。
5。@echo off 不显示后续命令行及当前命令行
6。pause 暂停,等待按键继续
7。if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。
有三种格式:
1、if [not] “参数” == “字符串” 待执行的命令
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。
例:if “%1”==”a” format a:
2、if [not] exist [路径]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,则显示它的内容。
3、if errorlevel <数字> 待执行的命令
很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2
8。choice 使用此命令可以提示用户输入一个选择项,根据用户输入的选择项再决定执行具体的过程。
使用时应该加/c:参数,c: 后应写提示可输入的字符或数字,之间无空格。冒号是可选项。
 使用时加也可选择加/m:参数,m:后应写提示说明语。
 具体的命令使用请参见choice/? 如下图所示:
这里写图片描述
尤其注意:此文件名称不可以命名为choice,因为那样会进入死循环。

参考文章:http://www.jb51.net/article/18980.htm
http://blog.csdn.net/wh_19910525/article/details/8125762
http://www.jb51.net/article/49627.htm
https://www.cnblogs.com/Braveliu/p/5080201.html

猜你喜欢

转载自blog.csdn.net/zhufengzhuiri/article/details/79134212