cmd第3章 命令行脚本基础

cmd第3章 命令行脚本基础

3.7.1 使用if语句

  if语句用于条件分支,可以将脚本的执行引导向两条不同的执行路径,其基本语法为:
if condition (statement1) [else (statement2)]
实例:
if "%1"=="1" (echo is one) else (echo is not one)

3.7.2 使用if not语句

  如果希望条件为假(false)的情况下才执行命令,则可以使用if not语句,其基本语法为:
if not condition (statement1) [else (statement2)]
实例:
if not errorlevel 0 (echo An error has occurred) & (goto :EXIT)

3.7.3 使用法definded与if not definded语句

  最后两种可以使用的if语句是if defined与if not defined,这两种语句可用于检查某变量是否存在,两种语句的语法格式分别为:
if defined variable statement

if not definded variable statement
实例:
if defined numServers (echo Server:%numSservers%)

3.8 命令行迭代语句

3.8.1 迭代的基础

  命令shell有几种不同形式的for语句,最基本的for语句形式为:
for iterator do (statement)
  iterator用于控制for循环的执行。对iterator中每一个步骤或元素,都会执行特定的语句。它可以是单一的一条命令,也可以是使用使用命令管道、命令链、命令分组等技术组合起来的多条命令。
  iterator通常包含一个初始化变量和一组需要反复执行的元素,比如需要遍历的一组文件或某范围内的一组值。初始化变量实质上是要使用的值的占位符,使用初始化变量时,应该注意如下几点。

  • iterator变量只存在于for循环的上下文中。
  • iterator变量为必须在az或者AZ范围内。
  • iterator变量名是大小写敏感的,也就是说,%%A与%%a是不同的。

3.8.2 遍历一系列的值

for /l %%variable in (start,step,end) do (statement)
如:
for /l %%B in (0,2,10) do echo %%B
其语句输出为:
0
2
4
6
8
10

3.8.3 在成组的文件中迭代执行

for %%variable in (fileSet) do (statement)
如:
for %%B in (C:\Working\*.txt) do (echo %%B)

3.8.4 在目录中迭代执行

  如果想操作目录,则可以使用如下的for语句格式:
for /d %%variable in (directorySet) do (statement)
如:
for /d %%B in (%SystemRoot%\*) do echo %%B

3.8.5 分析文件的内容与输出

for /f ["option"] %%variable in (source) do (statement)
如某源文件中如下一行文本:
William Stanek Engineering Willial@adatum.com 3408
for /f "tokens=1-5" %%A in (current_user.txt) do (@echo Name:%%A %%B Depart:%%C E-mail:%%D Ext:%%E)

表3-5 用于文件内容与命令输出信息分析的选项

选项 选项描述 实例 实例描述
eol 设置行尾注释字符 eol=# 将#设置为行尾注释字符
skip 设置文件起始处跳过的行数 skip=5 跳过源文件中的1到5行
delims 设置各字段之间的分隔符 delims=,.: 指定逗号、句点、分号为分隔符
tokens 为每一源行设置令牌字段 tokens=1,3 tokens=2-5 第一个实例将令牌字段设置为使用1与3,第二个实例将令牌字段设置为使用2、3、4、5
usebackq 规定可以在源指定符中使用引号:对文件名使用双引号,对命令使用反引号,对字符串使用单引号 usebackq 激活该选项
for /f "tokens=3-5 usebackq" %%C in (`type "use  data.txt"`) do (@echo Depart:%%C E-mail:%%D Ext:%%E)
posted @ 2023-02-04 15:43  Evan-whc  阅读(439)  评论(0编辑  收藏  举报