cmd脚本语法整理

  1. 语法

 

符号

@

关闭当前行的回显

 

|

管道传输命令:前面命令输出结果作为后面命令的输入内容

|find

 

||

前面命令执行失败的时候,才执行后面的命令

 

&

前面命令执行后,接着执行后面的命令

 

&&

前面命令执行成功了,才执行后面的命令

 

>

传递并覆盖(将运行结果传递给后面的范围:文件/控制台)

>nul

 

>>

传递并在末尾追加

 

^

对特殊符号 > 、<、 &、的转义字符

 

;

对同一个命令可以分割执行对象(还是每次执行一句)

 

nul

空对象

注释

rem xxx   /  :: xxx

 

 

 

 

显示

echo [on|off]

设置是否打开显示每行指令

 

echo [message]

显示message

 

echo

显示当前设置

 

 

 

跳转

goto

跳到标签

执行

call :LabelName

调用标签 / 脚本

 

:LabelName

标签

 

 

 

本地化

SETLOCAL

set之后所做的环境改动仅限于批处理文件

 

ENDLOCAL

还原系统原来的环境变量

 

 

 

变量

命名:SET A=…

调用:%A%

本地变量:%0~%9 自带的变量

 

 

 

 

条件

IF [NOT] DEFINED variable command

DEFINED 用来检测variable是否定义

 

IF [NOT] ERRORLEVEL number command

必须放在某个命令后面,

ERRORLEVEL:命令执行完成后返回的退出值,

Number 数字取值范围0~255

 

IF CMDEXTVERSION number command

变量是否已定义

 

IF [/I] [NOT] item1==item2 command

IF [/I] item1 compare-op item2 command

IF [/I] item1 compare-op item2 (command) ELSE (command)

item为字符串,[/I]表示不区分大小写

item为数字时:

compare-op取值范围:

EQU : =

NEQ : !=

LSS : <

LEQ : <=

GTR : >

GEQ : >=

 

IF [NOT] EXIST filename command

IF [NOT] EXIST filename (command) ELSE (command)

 

 

 

 

循环

cmd 窗口中:for 参数 "选项" %I in (command1) do command2

在批处理文件中:for 参数 "选项" %%I in (command1) do command2

 

 

 

 

*in 和do 之间的command1 表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔

 

 

 

 

 

*for /f "delims=, tokens=2,5" %%i in (test.txt) do echo %%i %%j

 

 

 

 

 

 

 

 

*

for /f %%i in ('dir /a-d /b *test*.txt') do echo %%i

 

*括号不能省略;空格不能省略

*for 后加的参数:

1)无参数,表示循环处理文件夹下的所有文件。

2/R 表示递归到子文件夹。

3/L 该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5) 将产生序列 1 2 3 4 5(5,-1,1) 将产生序列 (5 4 3 2 1)

4/D 搜索目录或文件夹,但不会搜索文件,也不搜索子目录.

5/F 从指定的文件中,以行为单位,读取数据作为变量,或从一个命令的输出中读取数据。

 

*其他的选项:

1eol=c - 忽略以指定字符(c)开头的行(默认忽略;开头的行/仅可以指定一个字符)

2skip=n - 跳过文件开始的n

3delims=分隔符集 - 切分字符串:默认提取切分后每一行的第一节内容 / 替换空格和跳格键默认分隔符集

4tokens=x,y,m-n - 指定提取指定节的内容

  1. 这会导致额外变量名称的分配(例:第一个形式变量为%%i 第二个数字指代的内容用第二个形式变量%%j 来接收,…
  2. m-n格式为一个范围。通过 nth 符号指定 mth
  3. *表示:只切分*前数字对应的节,其他的保留原样作为另一节。

5usebackq - 指定新语法已在下类情况中使用:

  1. 如果第一个括号里的对象是一条命令语句的话,原来的单引号'要改为后引号`~键上的符号)
  2. 如果第一个括号里的对象是字符串的话,原来的双引号"要改为单引号';
  3. 如果第一个括号里的对象是文件名的话,要用双引号"括起来

**(当路径中含有特殊字符的时候,应该使用引号把路径括起来)

*command1

1)形式:(文件名) ('命令语句') ("字符串")

 

<http://www.cnblogs.com/itech/archive/2009/04/15/1436409.html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值