Windows批处理功能-bat

1、批处理简介

什么是批处理?

常见的.bat文件就是批处理文件。它是一种无格式文件。(简单理解)

批处理的作用就是自动地连续执行多条命令,文件内容就是一条一条的命令。(功能和组成)

在命令提示符下输入批处理文件的名称,或者双击该批处理文件,系统会调用cmd.exe程序,按照该文件中各个命令出现顺序来逐个运行它们。(执行方式)

通常,使用批处理文件【也被称为批处理程序或脚本】,可以简化日常或重复性任务。(意义)

 

2、常用批处理命令

1)、基础命令

echo、@、call、pause、rem(可以用:代替)

echo:表示显示/输出此命令后的字符,类似C语言中的print。

echo off:表示在此语句后所有运行的命令都不显示命令行本身,主要用于关闭回显

@:与echo off类似,但是是加在每条命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)

call:调用另一个批处理文件(注意:如果不用call而直接调用别的批处理文件,那么执行完被调用批处理文件后将无法返回当前文件并执行当前文件的后续命令

pause:运行此命令会暂停批处理的执行,并在屏幕上显示"Press any key to continue..."的提示,等待用户按任意键后继续。

rem:表示此命令后的字符为解释行(注释),不执行

 

2)、批处理文件参数

参数表示符:%

通过%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者TAB键)分割的字符串。

其中,%0表示批处理文件本身,%1-%9为按照顺序表示参数

 

3)、特殊命令

if、goto、choice、for是批处理文件中比较高级的命令。

if是条件语句:用来判断是否符合条件,从而决定执行不同的命令。3种常见形式:

等于/不等于
if "参数"=="字符串" 待执行的命令
if not "参数"=="字符串" 待执行的命令

存在/不存在
if exist [path]filename 待执行的命令
if not exist [path]filename 待执行的命令

判断程序报错码
if errorlevel <数字> 待执行的命令

goto将运行批处理文件跳到goto所指定的标号(标号用冒号“:”,后面跟标准字符串来定义)处,goto一般与if配合使用。

goto end
:end
echo this is the end.

注意:标号所在行不被执行。

choice可以让用户根据需要只输入一个字符(用于选择),返回不同的errorlevel,然后与if errorlevel配合,根据用户的选择运行不同的命令。

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
  该工具允许用户从选择列表选择一个项目并返回所选项目的索引。

参数列表:
  /C   choices       指定要创建的选项列表。默认列表是 "YN"。
  /N                 在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。
  /CS                 允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。
  /T   timeout       做出默认选择之前,暂停的秒数。可接受的值是从 0 到 9999。如果指定了 0,就不会有暂停,默认选项会得到选择。
  /D   choice       在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
  /M   text         指定提示之前要显示的消息。如果没有指定,工具只显示提示。
  /?                 显示此帮助消息。
 
  注意:
  ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的 ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列。

示例:
  CHOICE /?
  CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
  CHOICE /T 10 /C ync /CS /D y
  CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
  CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"

for循环命令,只要符合条件,它将多次执行同一命令。

语法:for %%variable in (set) do command [command-parameters]

其中:

%%variable:指定一个单一字母可替换的参数。因为for命令本身使用的变量也需要带上%,加上bat的变量需要用%,所以此处在for语句中的变量需要用%%I的形式。

(set):指定一个文件或者一组文件。可以使用通配符。

command:指定对每个文件执行的命令。

command-parameters:为特定命令指定参数或命令行开关。

原文地址:https://www.cnblogs.com/mengxp/p/13864755.html