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
----------------------------------------------------------
是你用错了吧,怎么会不能用呢?(这是在批处理中的,单独要少个%)
for %%b in (c d e f g h i j k l m n o p q r s t u v w x y z) do if
exist %%b:/sysbak/Ghost.exe set s=%%b
预定义的变量
下
面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中
%CD%
- 扩展到当前目录字符串。
%DATE%
- 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME%
- 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM%
- 扩展到 0 和 32767
之间的任意十进制数字。
%ERRORLEVEL%
- 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION%
- 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE%
- 扩展到调用命令处理器的原始命令行。
%0
bat的完整路径名如"C:/Windows
/system32/xxx.bat"
%1
bat参数1依次类推%2参数2...
%path%
-
当前的环境变量。以分号隔开的路径列表,路径可包含空格,可以以'/'结尾, 可以以双引号包围之。
扩展变量
@ 与%i相关的变量(bat参数或者for循环的%i)
假
设文件为C:/Documents and Settings/jinsun/桌面/ParseSinglePkgs.bat
%0
C:/Documents and Settings/jinsun/桌面/ParseSinglePkgs.bat
%~dp0
C:/Documents and Settings/jinsun/桌面/
%cd%
C:/Documents and Settings/jinsun/桌面
%~nx0
ParseSinglePkgs.bat
%~n0
ParseSinglePkgs
%~x0
.bat
@ 与%VAR%相关的变量
%VAR
:str1=str2%
会将VAR中的str1替换为str2(str2如果为空则可以达到删除的效果,str1前可以加*,变量%ABC:*B=%是C)
%VAR:~0,-2%
会提取VAR 变量的所有字符,除了最后两个
%VAR:~2%
会提取VAR 变量的除前两个的所有字符
%VAR
:~-2%
会提取VAR 变量的最后两个
%VAR
:~2,5%
提取从第2个字符开始的5个字符
本文详细介绍了批处理命令set的功能及使用方法,包括变量设置、取消、展示等操作,并解释了如何利用set命令进行数学计算及接收用户输入。此外,还列举了一些预定义变量和变量扩展技巧。
634

被折叠的 条评论
为什么被折叠?



