BAT批处理文件语法第1/2页

2019-09-19 07:10:16王振洲

初始状态, cmd 为命令名, 可以用 %0 引用 
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 
经过1次shift后, cmd 将无法被引用 
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 
经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义 
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 
^ ^ ^ ^ ^ ^ ^ ^ ^ 

%0 %1 %2 %3 %4 %5 %6 %7 %8 
遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针. 
================= 
特殊命令
if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 
一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。有三种格式: 
1、if [not] "参数" == "字符串" 待执行的命令 
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。 
例:if "%1"=="a" format a: 
==== 
if 的命令行帮助中关于此点的描述为: 
IF [NOT] string1==string2 command 
在此有以下几点需要注意: 
1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符 
2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量 
3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行 
============================= 
2、if [not] exist [路径]文件名 待执行的命令 
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如: if exist c:config.sys type c:config.sys 
表示如果存在c:config.sys文件,则显示它的内容。 
****** 注 ******** 
也可以使用以下的用法: 
if exist command 
device 是指DOS系统中已加载的设备, 在win98下通常有: 
相关文章 大家在看