1 参数 参数变量:直接接收用户附于批处理程序后的字串,并将各字串自动代入相应的变量。
%0-%9;%0代表批处理文件本身,此后顺推;%0自动默认为批处理文件名,不需要任何传递或赋值操作;
2 变量赋值 set varname=varvalue
变量的表达式赋值:set /a ver=100+1
3 与用户交互的变量 set /p varname="remark"
4 替换变量值 %varname%:表示引用变量;
5 迭代变量 %a-%z或%A-%Z;只存在于for循环的上下文件中,首先定义的是其初始值;
变量的清除或释放: set ver=
变量作用范围局部化 setlocal
1 定义的变量退出cmd时这些变量将不复存在;
2 可设置变量的作用范围局限在某个特定的区域;
环境变量 path,homedrive,computername,errorlevel(追踪最近使用命令的退出代码);
变量扩充 2 变量要用%x来表示,x可取a-z,A-Z,0-9;
%a-z或%A-Z是for语句中的迭代变量;(脚本的for命令处理的对象是文件集\目录集\或文本文件、命令输出的以行为基础的文本;
%0-9是批处理脚本的参数;
%~dI    仅将 %I 扩展到一个驱动器号
%~pI    仅将 %I 扩展到一个路径
echo %~dp0  显示当前批处理文件的路径;
变量延迟 使用变量时是用&,当延迟变量时,用!代替&;
!是%的一个强化版,在for循环中,当一个变量被多次赋值时,%dd%所获取的仅仅是dd第一次被赋予的值,想要刷新dd的值,就必须首先使用命令setlocal enabledelayedexpansion来开启延时变量开关,然后用!dd!来获取dd的值;
字符串的处理:截取\替换\合并\扩充
字符串的扩充是对表示文件路径的字符串进行特殊的处理;不是所有的%I都可以进行扩充的,需具备以下两个条件:
1 该字符串代表一个文件的路径;
2 变量要用%x来表示,x可取a-z,A-Z,0-9;
%a-z或%A-Z是for语句中的迭代变量;(脚本的for命令处理的对象是文件集\目录集\或文本文件、命令输出的以行为基础的文本;
%0-9是批处理脚本的参数;
将指定的变量%I进行扩展(~,为扩展符号,它与不同的字母结合所代表的含义不同)
%0 代表批处理文件自身
%~I  删除任何引号("),扩展 %I
%~fI     将 %I 扩展到一个完全合格的路径名
%~dI     仅将 %I 扩展到一个驱动器号
%~pI     仅将 %I 扩展到一个路径
%~nI     仅将 %I 扩展到一个文件名
%~xI     仅将 %I 扩展到一个文件扩展名
%~sI     扩展的路径只含有短名
%~aI     将 %I 扩展到文件的文件属性
%~tI     将 %I 扩展到文件的日期/时间
%~zI     将 %I 扩展到文件的大小
%~$PATH:I     查找列在路径环境变量的目录,并将 %I 扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串
可以组合修饰符来得到多重结果:
%~dpI    仅将 %I 扩展到一个驱动器号和路径
%~nxI    仅将 %I 扩展到一个文件名和扩展名
%~fsI    仅将 %I 扩展到一个带有短名的完整路径名
%~dp$PATH:I   搜索列在路径环境变量的目录,并将 %I 扩展到找到的第一个驱动器号和路径。
%~ftzaI  将 %I 扩展到类似输出线路的 DIR
在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。
echo %~dp0 显示当前批处理文件的路径;
%%variable 在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
定义变量 set extension=.rar
for /l %%n in (0,1,9) do (
set /a sum=0 rem定义一个数值型变量"sum",并将其值设为“0”;
set [[/a [expression]][/p [variable=]] string]
变量引用 % and !

 

 

 

1 参数  参数变量:直接接收用户附于批处理程序后的字串,并将各字串自动代入相应的变量。
%0-%9; %0代表批处理文件本身,此后顺推;

2 环境变量 
path,homedrive,computername,errorlevel(追踪最近使用命令的退出代码);

2 变量赋值 
set varname=varvalue  
变量的表达式赋值:
set /a ver=100+1
set 自定义变量;
set 暂时修改预定义的环境变量;
setx 永久修改预定义的环境变量;

3 与用户交互的变量
set /p varname="remark"

4 替换变量值   
%varname%:表示引用变量;  

5 迭代变量 
%a-%z或%A-%Z;只存在于for循环的上下文件中,首先定义的是其初始值;   

系统变量的检查:  
1 win+r %systemroot%
2 cmd   echo %computername% echo %username%

errorlevel:可以追踪最近使用命令的退出代码。   
1 如果命令正常执行,则错误级别为0;  
2 如果命令执行过程中出错,则错误级别会被设置为一个适当的非0值; 
1代表通常的错误;
2 代表执行错误,意味着命令没有正确执行;
-2代表算数错误,比如创建了一个命令shell无法处理的过大的数值;

变量的清除或释放:
set ver=   

变量作用范围局部化
1 定义的变量退出cmd时这些变量将不复存在;
2 可设置变量的作用范围局限在某个特定的区域;  
setlocal