介绍
Batch脚本的功能:
- 可以读取用户的输入,以便进一步处理。
- 有控制结构:for, if, while 和 switch更好的自动化和脚本。
- 支持高级功能,如函数和数组。
- 支持正则表达式。
- 可以包含其他编程代码,如Perl。
- Batch脚本的一些常见用途是
- 为不同的目的设置服务器。
- 自动管理活动和日志,如删除不需要的文件或日志文件。
- 自动将应用程序从一个环境部署到另一个环境。
- 立即在各种机器上安装程序。
常用命令
编号 | 命令 | 描述 |
---|---|---|
1 | VER | 此批处理命令显示正在使用的MS-DOS的版本。 |
2 | ASSOC | 这是将扩展名与文件类型(FTYPE)相关联的批处理命令,显示现有关联或删除关联。 |
3 | CD | 此批处理命令用于更改进入不同的目录,或显示当前目录。 |
4 | CLS | 这个批处理命令清除屏幕。 |
5 | COPY | 此批处理命令用于将文件从一个位置复制到另一个位置。 |
6 | DEL | 这个批处理命令用于删除文件而不是目录。 |
7 | DIR | 该批处理命令列出目录的内容。 |
8 | DATE | 这个批处理命令用于查找系统日期。 |
9 | ECHO | 此批处理命令显示消息,或打开或关闭命令回显。 |
10 | EXIT | 这个批处理命令退出DOS控制台。 |
11 | MD | 这个批处理命令在当前位置创建一个新的目录。 |
12 | MOVE | 这个批处理命令在目录之间移动文件或目录。 |
13 | PATH | 此批处理命令显示或设置路径变量。 |
14 | PAUSE | 该批处理命令会提示用户并等待输入一行。 |
15 | PROMPT | 此批处理命令可用于更改或重置cmd.exe 提示符。 |
16 | RD | 这个批处理命令删除目录,但目录需要是空的才能被删除。 |
17 | REN | 重命名文件和目录 |
18 | REM | 此批处理命令用于批处理文件中的备注,防止执行备注的内容。 |
19 | START | 该批处理命令在新窗口中启动程序,或打开文档。 |
20 | TIME | 该批处理命令设置或显示时间。 |
21 | TYPE | 该批处理命令将文件或文件的内容打印到输出中。 |
22 | VOL | 此批处理命令显示卷标。 |
23 | ATTRIB | 显示或设置当前目录中的文件的属性 |
24 | CHKDSK | 这个批处理命令检查磁盘是否有问题。 |
25 | CHOICE | 这个批处理命令为用户提供了一个选项列表。 |
26 | CMD | 此批处理命令将调用另一个命令提示符实例。 |
27 | COMP | 该批处理命令根据文件大小比较2 个文件。 |
28 | CONVERT | 此批处理命令将卷从FAT16 或FAT32 文件系统转换为NTFS文件系统。 |
29 | DRIVERQUERY | 此批处理命令显示所有已安装的设备驱动程序及其属性 |
30 | EXPAND | 此批处理命令从压缩的.cab 压缩文件中提取文件。 |
31 | FIND | 该批处理命令在文件或输入中搜索字符串,输出匹配的行。 |
32 | FORMAT | 此批处理命令将磁盘格式化为使用Windows支持的文件系统(如FAT ,FAT32 或NTFS ),从而覆盖磁盘的先前内容。 |
33 | HELP | 该批处理命令显示Windows提供的命令的列表。 |
34 | IPCONFIG | 此批处理命令显示Windows IP配置。显示连接的配置和连接的名称。 |
35 | LABEL | 此批处理命令添加,设置或删除磁盘标签。 |
36 | MORE | 此批处理命令一次显示一个或多个文件的内容。 |
37 | NET | 根据使用的命令提供各种网络服务。 |
38 | PING | 这个批处理命令通过网络将ICMP/IP “回显”发送到指定的地址的包。 |
39 | SHUTDOWN | 该批处理命令关闭计算机,或者注销当前用户。 |
40 | SORT | 该批处理命令从源文件获取输入,并按字母顺序排序其内容,从A 到Z 或从Z 到A 。它将在控制台上打印输出。 |
41 | SUBST | 此批处理命令将驱动器号分配给本地文件夹,显示当前分配或删除分配。 |
42 | SYSTEMINFO | 该批处理命令显示计算机及其操作系统的配置。 |
43 | TASKKILL | 该批处理命令结束一个或多个任务。 |
44 | TASKLIST | 此批处理命令列出任务,包括任务名称和进程标识(PID)。 |
45 | XCOPY | 这个批处理命令以更高级的方式复制文件和目录。 |
46 | TREE | 该批处理命令将当前目录的所有子目录的树显示为递归或深度的任何级别。 |
47 | FC | 这个批处理命令列出了两个文件之间的实际差异。 |
48 | DISKPART | 此批处理命令显示和配置磁盘分区的属性。 |
49 | TITLE | 该批处理命令设置控制台窗口中显示的标题。 |
50 | SET | 显示当前系统上的环境变量列表。 |
echo off
命令,默认情况下批处理运行是显示其命令,该命令可以关闭其显示;使用@
符号使命令适用于自己。
REM
, ::
关键字起注释作用。
E.G
@echo off
Rem This is for listing down all the files in the directory Program files
dir "C:\Program Files" > C:\lists.txt
echo "The program has completed"
- 使用
echo off
命令确保执行代码时不显示命令 Rem
命令用于添加注释来说明这个批处理文件的功能dir
命令用于获取目录C:\Program Files
的内容>
命令用于将输出重定向到文件C:\lists.txt
echo
命令用于告诉用户操作已完成批处理参数
批处理文件中有两种类型的变量。 其中一个参数是在调用批处理文件时可以传递的参数,另一个是通过
set
命令完成的。
命令行参数
批处理脚本支持命令行参数的概念,其中参数可以在被调用时传递给批处理文件。参数可以通过变量%1
,%2
,%3
等从批处理文件中调用。
以下示例显示了一个批处理文件,它接受3个命令行参数,并将它们回显到命令行屏幕。
@echo off
echo %1
echo %2
echo %3
**set
命令
set /A variable-name=value
其中
- variable-name - 是想要设置的变量的名称。
- value - 是需要根据变量设置的值。
- /A - 如果该值本质上是数值,则使用此开关。
E.G.
@echo off
set message=Hello World
echo %message%
@echo off
SET /A a=5
SET /A b=10
SET /A c=%a% + %b%
echo %c%
变量范围
DOS脚本还定义了局部和全局范围的变量。 默认情况下,变量是整个命令提示符会话的全局变量。 调用SETLOCAL
命令,使变量局部在脚本的范围内。 在调用SETLOCAL
之后,任何变量赋值在调用ENDLOCAL
,调用EXIT
,或者当执行到达脚本中的文件结尾(EOF)时都会返回。 以下示例显示了在脚本中设置局部和全局变量时的差异。
字符串处理
编号 | 字符串操作 | 描述 |
---|---|---|
1 | 创建字符串 | 字符串可以通过以下方式在DOS中创建。 |
2 | 空字符串 | 空的字符串 |
3 | 字符串插值 | 字符串插值是一种通过将常量,变量,文字和表达式中的值包含在字符串文字中来构造新的字符串值的方法。 |
4 | 字符串连接 | 可以使用set 运算符连接两个字符串,一个字符串和一个字符,或者两个字符。 以下是一个简单的例子,展示了如何使用字符串连接。 |
5 | 字符串长度 | 在DOS脚本中,没有定义用于计算字符串长度的长度函数。 有自定义函数可以用于相同的。 以下是用于查看字符串长度的自定义函数的示例。 |
6 | toInt | 使用set 变量设置为字符串的变量可以使用使用set 变量的/A 开关转换为整数。 以下示例显示了如何完成此操作。 |
7 | 对齐 | 这用于将文本向右对齐,通常用于提高数字列的可读性。 |
8 | 左字符串 | 这用于从字符串的开头提取字符。 |
9 | 中间字符串 | 这用于通过字符串中字符的位置来提取子字符串。 |
10 | 删除字符串 | 字符串替换功能也可以用来从另一个字符串中删除一个子字符串。 |
11 | 删除两端 | 这用于删除字符串的第一个和最后一个字符。 |
12 | 删除所有空格 | 这用于替换删除字符串中的所有空格。 |
13 | 替换一个字符串 | 要用一个字符串替换子字符串,请使用字符串替换功能。 |
14 | 右字符串 | 这用于从字符串的末尾提取字符。 |