Windows批处理脚本(.bat文件)是一种用于在Windows操作系统上执行一系列命令的脚本文件。
一、bat脚本基本介绍
基础语法 :
变量操作:在bat脚本中,可以通过set 命令设置变量,使用%variable% 来引用变量的值。
控制结构:包括if 条件判断、for 循环等,用于控制脚本的流程。
文件操作:如copy 、move 、del 等命令,用于文件的复制、移动和删除。
目录操作:mkdir 用于创建目录,rmdir 用于删除目录。
常用功能 :
界面管理:可以通过echo 和pause 等命令与用户交互。
网络管理:虽然不是批处理的主要用途,但也可以通过某些工具实现网络相关的操作。
编写和运行 :
编写:可以使用任何文本编辑器编写bat脚本,例如Notepad。
运行:双击bat文件或在命令行中输入文件名即可运行。
应用场景 :
自动化任务:自动执行重复性的工作,如备份文件、系统维护等。
简化操作:将复杂的操作序列简化为一个脚本,提高效率。
集成其他程序:可以与其他程序结合使用,实现更复杂的功能。
二、bat脚本关于中文显示乱码问题:
在bat 脚本文件中,如果中文不是ANSI编码,就会出现乱码。可以采用Windows操作系统平台自带的记事本打开脚本文件,点击菜单【文件】-【另存为】操作,选择ANSI编码进行保存。再次运行,中文乱码问题将得到解决。
三、bat脚本常见命令使用介绍:
注释命令: rem 或 ::
Bash rem 显示日期和时间 echo %date% echo %time%
echo
Bash echo on 批处理命令在执行时显示自身命令行 echo off 批处理命令在执行时不显示自身命令行 @echo off 关闭echo off命令行自身的显示 echo Hello World 打印Hello World echo. 输出空行,"."可以用,:;”/[\]+等任一符号替代 echo test > file.txt 创建包含字符test的file.txt文件 echo 文件内容>>文件名 追加内容到文件 echo y | del d:\temp\*.txt 输入y确认删除
暂停:pause
Bash pause 等待并提示"请按任意键继续. . ." pause > nul 等待但不出现提示语 echo wait a moment.. & pause > nul 输出指定输出语"wait a moment.."并等待操作
常用系统变量读取
Shell %CD% 获取当前目录 %PATH% 获取命令搜索路径 %DATE% 获取当前日期。 %TIME% 获取当前时间。 %RANDOM% 获取 0 和 32767 之间的任意十进制数字。 %ERRORLEVEL% 获取上一命令执行结果码
变量读取:使用%variable%可以获取变量值
变量设置: 使用set命令显示、设置或删除 windows环境变量
Bash SET [variable=[string]] #variable表示变量名,string表示变量值 eg: set Year=%date:~2,2% set [[/a [expression]] [/p [variable=]] string] /a:将string设置为可以计算的数学表达式。 /p:将variable设置成在线输入的string,用于读取输入 eg: @echo off set /a value = 1 + 2 * 5 echo %value% pause if "%1%" neq "" ( set dir=%1% ) else ( set /p dir=Please Input Dir: )
Start : 启动一个单独的窗口以运行指定的程序或命令,程序继续向下执行
Bash START [command/program] [parameters] eg: start C:\Users\dell\Desktop\databaseBrowser\SQLite\DB_SQLite.exe database\mate.db
cls 清除屏幕内容
goto :EOF 表示结束不再继续下面的内容
Bash rem check input val: if "%1%"=="" ( goto :EOF )
Call 在一个脚本里面调用另一个脚本
比较指令
Bash EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于
字符串截取。使用命令 echo %var:~n,k%,其中"%var",表示待截取字符的字符串,"~"取字符标志符,"n”表示字符截取起始位置,"k" 表示截取个数
Bash @echo off set str=superhero echo str=%str% echo str:~0,5=%str:~0,5% echo str:~3=%str:~3% echo str:~-3=%str:~-3% echo str:~0,-3=%str:~0,-3% pause 输出如下: str=superhero str:~0,5=super str:~3=erhero str:~-3=ero str:~0,-3=superh 请按任意键继续. . .
copy 文件复制命令
Bash copy d:\temp\file1.txt d:\temp1 将文件file1.txt复制到temp1目录,有相同文件提示copy d:\temp\file1.txt d:\temp1 /y 将文件file1.txt复制到temp1目录,有相同文件覆盖原文件,不提示copy d:\temp1\* d:\temp2 /y 将temp1目录下的所有文件复制到temp2目录,有相同文件覆盖原文件,不提示
xcopy 目录复制命令
Bash xcopy temp1 d:\temp2 /y 将temp1目录下的文件复制到temp2目录,不包括temp1子目录下的文件。xcopy temp1 d:\temp2 /s /e /y 将temp1目录下的文件复制到temp2目录,包括temp1子目录下的文件
type 显示文件内容命令
Bash type file2.txt 查看file2文件内容type file1.txt file2.txt #查看file1和file2文件内容type file1.txt > file2.txt #将file1.txt文件内容重定向到file2.txttype nul > file1.txt #创建文件
ren 重命名文件命令
Bash ren d:\temp\file2.txt file3.txt 修改temp目录下的file2.txt文件名为file3.txt
del 删除文件命令
Bash del c:\temp\file.txt 删除temp目录下的file.txt文件del c:\temp\*.txt 删除temp目录下的后缀为.txt的文件
cd 显示当前目录或切换目录
Bash cd c:\temp 切换到temp目录,当前目录是c盘cd /c c:\temp 切换到temp目录,当前目录非c盘cd .. 切换到上一级目录
mkdir 创建目录
Bash mkdir info 在当前目录下创建info目录mkdir d:\temp\info 在temp目录下创建info 目录,如果temp目录不存在,自动创建
rmdir 删除目录
Bash rmdir d:\temp 删除空目录temp,非空则删除失败rmdir d:\temp /s /q 删除temp目录,包括子目录(/s),并且删除时不提示(/q)
dir 显示目录下的子目录和文件
Bash dir d:\temp 显示temp目录下的文件和目录信息,显示信息包含日期、时间、文件类型和文件名dir d:\temp /a:a /b 只显示temp目录下(不包括子目录)的文件的绝对路径,不显示日期、时间、文件类型和文件名dir d:\temp /b /s /o:n /a:a 显示temp路径下(包括子目录)的所有文件的绝对路径。输出文件按照文件名数字顺序排序dir d:\temp\*.txt /a:a /b /o:n 显示.txt后缀文件,并且按照文件名顺序排序(/on ),其他排序方法查看help dir
bat脚本运用案例(一键日志抓取):https://download.csdn.net/download/Psyduck_ing/89237981