Batch

来自osdev
Zhang3讨论 | 贡献2022年1月24日 (一) 03:27的版本 (创建页面,内容为“批处理文件相当于Windows下的shell 脚本。 它由 WindowsMS-DOS 和OS/2支持。 由于DOS没有文件扩展名映射配置,因此批处理文件扩展名固定是 '.BAT',或'.bat',但不可以是大小混合。 但是在Windows中,它们也可以以 '.cmd' 结尾 == 批处理文件的内容 == 批处理文件是由命令处理器解释的纯文本文件,命令处理器通常在Windows上…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

批处理文件相当于Windows下的shell 脚本。 它由 WindowsMS-DOS 和OS/2支持。 由于DOS没有文件扩展名映射配置,因此批处理文件扩展名固定是 '.BAT',或'.bat',但不可以是大小混合。 但是在Windows中,它们也可以以 '.cmd' 结尾

批处理文件的内容

批处理文件是由命令处理器解释的纯文本文件,命令处理器通常在Windows上是cmd.exe,在DOS上是command.COM。

Label和GOTO

它具有通过标签 (以 ':' 为前缀) 配合GOTO的做一些流程控制功能。

Echo 输出

Echo允许您在屏幕上打印,并具有特殊功能 “@echo off” 以关闭批处理本身的命令。

Pause 暂停

暂停允许您让用户输入确认键,然后再继续。

注释

批处理中的注释是单行的,以 “::” 或 “rem” 开头

SET

Set允许您在shell中设置变量。 这些变量可以在批处理内部使用,并且是shell的本地变量,这意味着所有将来的批处理文件都可以访问它们。 但是由于它们是shell的全局变量,因此如果在Windows中shell是自动关闭的,则变量将被擦除,还有一个系统变量是PATH。 要使用变量,您必须使用 “%” 对其名字进行前后包含。

IF

IF是批处理的唯一逻辑命令,ELSE仅作为其扩展而存在,则语法为 “IF [NOT] %VARIABLE [== %VAR2] COMMAND [ELSE OTHER.EXE]”

Input 输入

警告!此方法仅适用于windows 2000以上版本。 如果需要在批处理文件中进行用户输入,则可以使用 “SET /P VARIABLE = Message”,其中变量是要设置的变量,而Message是要放在提示之前的文本。 如果用户不输入任何信息,则将变量保持为以前的值,如果是新变量,则将保持未定义。

读取命令行参数

如果批处理中需要适当的外部输入,命令行参数可能是一个有价值的途径。 要访问它们,你需要使用数字变量。 例如,第一个参数是 %1,第二个参数是 %2,依此类推。

数学方程式

要预先形成任何数学方程式,请使用 “SET /a变量 = n?p”,其中变量是要设置的变量,n和p是值或变量,而 '?' 是运算符,运算符清单如下:

  • Add +
  • Subtract -
  • Multiply *
  • Divide /
  • Modulus  %
  • AND &
  • OR |
  • XOR ^
  • Left Bit-wise shift <<

示例

下面可以看到一个示例批处理文件,它需要三个命令行参数,该文件实现的是一个简单的计算器。

:: calc.bat -- Command line calculator, takes three arguments
IF %2==+ GOTO ADD
IF %2==- GOTO SUB
IF %2==* GOTO MUL
IF %2==/ GOTO DIV 
ECHO No Valid Operator Found
EXIT

:SUB
SET /a VAL=%1%-%2%
GOTO DISP

:MUL
SET /a VAL=%1%*%2%
GOTO DISP

:DIV
SET /a VAL=%1%/%2%
GOTO DISP

:DISP
ECHO %VAL%
EXIT

另见

External Links