什么是 BAT 批处理脚本语言?
BAT 批处理脚本语言是 Windows 系统自带的一种脚本语言,主要用于批量处理文件、目录、注册表、系统设置等任务。使用 BAT 批处理脚本语言可以节省大量手动操作的时间和精力。
如何编写 BAT 批处理脚本?
- 使用记事本或其他文本编辑器打开一个新文件。
- 以.bat 或.cmd 为文件后缀名,例如 test.bat 或 test.cmd。
- 在文件中输入要执行的命令,每行一个命令。
- 保存文件并关闭文本编辑器。
BAT 批处理脚本语言常用基础语法
@echo off
这个命令用于关闭脚本的输出。如果不加这个命令,脚本会将每个命令的输出都显示在命令行窗口中。
注释
在 BAT 批处理脚本语言中,使用 REM 关键字表示注释。注释语句不会被执行,可以用于添加注释、说明等。
REM 这是一个注释
rem 这是一个注释
:: 这是一个注释
ECHO
ECHO 命令用于在命令行窗口中输出文本。语法如下:
ECHO [ON|OFF] [文本]
例如:
ECHO Hello World
变量
使用 set 命令可以定义变量,可以将一个字符串或命令的输出结果赋值给变量。语法如下:
SET 变量名=值
例如:
set var=Hello World
echo %var%
条件语句
使用 if 命令可以进行条件判断。if 命令可以判断变量值、文件存在、字符串比较等条件。语法如下:
IF [NOT] 条件命令 (命令)
例如:
if %var%==Hello World (
echo Var is Hello World
) else (
echo Var is not Hello World
)
循环语句
使用 for 命令可以进行循环操作。for 命令可以遍历文件列表、目录列表、字符串列表等。语法如下:
FOR %%variable IN (集合) DO 命令
例如:
for %%i in (\*.txt) do (
echo %%i
)
go to
用于跳转到指定标签处执行代码。它的基本语法如下:
goto :label
其中,:label 表示要跳转到的标签名称,需要在脚本中预先定义好。当 goto 命令执行时,控制权将转移到指定标签处,继续执行标签下面的代码。
下面是一个简单的示例,演示如何使用 goto 命令实现无限循环:
@echo off
:start
echo Hello, world!
goto start
函数
使用 call 命令可以定义函数。函数可以将多个命令封装成一个独立的逻辑单元,方便复用和维护。
call :func1
goto :eof
:func1
echo Func1
goto :eof
文件操作
使用 copy、move、del 等命令可以对文件进行复制、移动、删除等操作。
copy file1.txt file2.txt
move file1.txt dir1\
del file1.txt
start
start 命令可以用于打开一个新的窗口来运行指定的程序。语法如下:
start "窗口标题" 程序名 参数
其中,参数说明如下:
- “标题”:指定新窗口的标题。
- /d 目录:指定要运行命令或程序的目录。
- /i:在新窗口中运行程序时,将其作为另一个进程运行。
- /min:指定新窗口应最小化。
- /max:指定新窗口应最大化。
- /separate:新窗口应在其自己的进程中启动。
- /shared:新窗口应与调用窗口共享进程。
- /low、/normal、/high、/realtime、/abovenormal、/belownormal:指定新窗口的优先级。
- /wait:指定启动的程序运行完成后才退出 start 命令。
- /b:指定不等待命令或程序完成,而是立即返回。
例如:
start "Notepad" notepad.exe
这个命令将打开一个新的窗口来运行 Notepad 程序。
pause
pause 命令可以暂停脚本的执行,直到用户按下任意键。
示例
下面是一个简单的.bat 文件示例,用于列出当前目录下所有的.txt 文件:
@echo off
REM 设置变量
SET file_type=txt
REM 输出文本
ECHO Searching for files of type %file_type%...
REM 循环处理所有的文件
FOR %%G IN (*.%file_type%) DO (
ECHO %%G
)
pause
在命令行窗口中运行这个.bat 文件,它将输出所有的.txt 文件名,并在最后暂停等待用户按下任意键。