Windows中批处理文件以.bat为后缀,批处理可以理解为一个脚本,里面预先编写了一系列命令(在Windows系统中即为dos命令)。打开批处理文件会默认打开cmd,自动开始执行文件中编写好的dos命令。
进行批处理编写之前,先简单认识一些DOS中文件的基本操作命令:
本文重点是批处理编写,因此DOS命令简单带过。
红字表示系统关键字,黑字表示变量
1.创建文件、文件夹
①md dirName //创建文件夹
②echo nul > fileName //创建一个内容为空的文件(nul也可以直接为空格)
③copy con > fileName //将接下来输入的内容复制到文件中(若没文件则会创建)
fileName若写绝对路径,则在该路径下创建;若直接写文件名,则在当前目录下创建。
按ctrl+z结束编辑并保存,ctrl+c结束编辑且不保存。
如上图,此命令将下面输入的hello和test复制到file.txt这个文件中 。
④fsutil file createnew testFile.txt 10000 (该命令需管理员身份运行cmd)
表示生成一个名字为testFile的txt文件,大小为10000B(用空格填充)
2.删除文件、文件夹
①rd dirName //删除文件夹
②del fileName //删除文件夹,可以有以下扩展:
del fileName /s //删除当前目录下的文件,以及当前目录下所有子目录的文件(文件夹不会被删除)
del *.* //删除所有文件
del *.txt //删除所有txt文件
3.其它
echo strings //在cmd中输出string内容,类似编程里的print
color 数字数字 //cmd显示的颜色,第一个数字是背景色,第二个是字体色,颜色数字对应如下:
接下来学习简单批处理文件
1.编写一个批处理,创建一些可执行的exe文件,一些模拟为垃圾文件的txt文件
①创建bat文件:
②编辑该bat文件,编写下列命令:
注意正式批处理文件中不要有注释
@echo off //取消提示符显示,即不显示“c:\Users\Link\test>”
color 0A //设定显示颜色,第一位是背景,第二位是字体
title My first bat //窗口名,title命令只在批处理中有用
echo ====================
echo 创建文件中...
echo > c:\Users\Link\test\file0.exe //在指定目录下创建文件
echo > c:\Users\Link\test\file1.exe
fsutil file createnew c:\Users\Link\test\virus.txt 100000 >nul 2>nul //>nul 2>nul表示不显示执行结果,包括成功提示和失败提示
echo > c:\Users\Link\test\directory1\file2.exe
echo > c:\Users\Link\test\directory1\file3.exe
fsutil file createnew c:\Users\Link\test\directory1\virus.txt 1000000 >nul 2>nul
echo. //换行符,只在批处理中有用
echo 创建完成!
echo ====================
Pause //用于命令执行完后,保留cmd窗口,需手动按任意键退出窗口
⚠️注意:
创建文件时,文件名建议使用绝对路径,因为使用管理员身份运行时,默认会在Windows\system32文件夹下,若不写绝对路径,操作会在该目录下进行,很危险!因此建议在虚拟机中完成实验。
③以管理员身份打开批处理文件
可以看到批处理结果,文件已创建。
2. 编写一个批处理,删除virus文件
①创建bat文件;
②编写如下命令:
@echo off
color 0A
title My first bat
echo ====================
echo 清理中...
del c:\Users\Link\test\*.txt /s /q //删除该目录中的txt文件,以及该目录下所有子目录的txt文件
echo.
echo 清理完成!
echo ====================
Pause
③以管理员运行,可以看到有且只有txt文件被删除:
总结:
①Windows批处理文件是以.bat为后缀的文件,打开该文件,会默认打开cmd,并执行文件中预先编写的dos命令;
②批处理的命令会被按顺序逐条全部执行完,不会因为中间有命令执行失败而中止;
③以管理员身份运行打开批处理文件时,会默认在C:\Windows\system32\下,因此涉及文件名或文件夹名的地方一定要用绝对路径(即完整路径);
④建议在虚拟机环境中练习。