bat批处理 set命令

set 功能一览 [设置变量] 格式: set 变量名=变量值  

  set 变量名=%变量名% 详细:  被设定的变量以%变量名%引用
[取消变量] 格式: set 变量名= 详细: 取消后的变量若被引用%变量名%将为空
[展示变量] 格式: set 变量名 详细: 展示以变量名开头的所有变量的值
[列出所有可用的变量] 格式: set

[计算器] 格式: set  /a 表达式 示例: set /a 1+2*3  

输出 7
[设置变量为表达式计算后的值] set a=1+2 echo %a%

输出1+2

set /a a=1+2 echo %a%

输出 3

[设置变量为用户输入的值] set /p a=

此时需要用户输入的值 echo %a% 

显示用户输入的值
注意 set不能用在复合语句里面比如if 1==1 set a=2或者for %%i in (a) do set a=2

预定义的变量 下面是些已经被底层定义好可以直接使用的变量(不会出现在 SET 显示的变量列表中) %CD% - 扩展到当前目录字符串. %DATE% - 用跟 DATE 命令同样的格式扩展到当前日期. %TIME% - 用跟 TIME 命令同样的格式扩展到当前时间. %RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字. %ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值. %CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号. %CMDCMDLINE% - 扩展到调用命令处理器的原始命令行. %0 - bat的完整路径名如"d:\temp\xxx.bat" %1 - bat参数1依次类推%2参数2... %path% - 当前的环境变量. 以分号隔开的路径列表, 路径可包含空格, 可以以'\'结尾, 可以以双引号包围之.

扩展变量

与%i相关的变量(bat参数或者for循环的%i) 假设文件为d:\temp\ParseSinglePkgs.bat %0        d:\temp\ParseSinglePkgs.bat %~dp0  d:\temp\ %cd%   d:\temp\ %~nx0   ParseSinglePkgs.bat %~n0     ParseSinglePkgs %~x0     .bat
与%VAR%相关的变量 %VAR:str1=str2%    会将VAR中的str1替换为str2

echo %abcdc:c=ko%  结果是 abkodko

str2 如果为空则可以达到删除的效果, str1 前可以加*

变量%abcde:*d=% 结果是 e

%VAR:~0,-2%          会提取VAR 变量的所有字符, 除了最后两个 %VAR:~2%              会提取VAR 变量的除前两个的所有字符 %VAR:~-2%             会提取VAR 变量的最后两个 %VAR:~2,5%           提取从第2个字符开始的5个字符

 

posted @ 2017-02-15 10:44  sky20080101  阅读(488)  评论(0)    收藏  举报