windows批处理set命令

    [设置变量]
    格式:set 变量名=变量值
    详细:被设定的变量以%变量名%引用

    [取消变量]
    格式:set 变量名=
    详细:取消后的变量若被引用%变量名%将为空

    [展示变量]
    格式:set 变量名
    详细:展示以变量名开头的所有变量的值

    [列出所有可用的变量]
    格式:set

    [计算器]
    格式:set /a 表达式
    示例:set /a 1+23 输出 7
    *!注意!

    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的完整路径名如”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 变量的最后两个

    系统变量:

    他们的值由系统将其根据事先定义的条件自动赋值,我们只需要调用而已

    %ALLUSERSPROFILE% (allusersprofile)本地 返回“所有用户”配置文件的位置。 C:Documents and SettingsAll Users

    %APPDATA% (appdata)本地返回默认情况下应用程序存储数据的位置。 C:Documents and SettingsAdministratorApplication Data

    %CD% (cd)本地返回当前目录字符串。 C:Documents and SettingsAdministrator桌面

    %CMDCMDLINE% (cmdcmdline)本地返回用来启动当前的 Cmd.exe 的准确命令行。 cmd /c “”C:Documents and SettingsAdministrator桌面a.bat” “

    %CMDEXTVERSION%(cmdextversion)系统返回当前的“命令处理程序扩展”的版本号。2

    %COMPUTERNAME% (computername)系统返回计算机的名称。 xxxx

    %COMSPEC% (comspec) 系统返回命令行解释器可执行程序的准确路径。 C:WINDOWSsystem32cmd.exe

    %DATE% 系统返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。

    %ERRORLEVEL% (errorlevel) 系统返回上一条命令的错误代码。通常用非零值表示错误。

    %HOMEDRIVE% (homedrive)系统返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 C:

    %HOMEPATH% (homepath) 系统返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 Documents and SettingsAdministrator

    %HOMESHARE% (homeshare) 系统返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

    %LOGONSERVER% (logonserver) 本地返回验证当前登录会话的域控制器的名称 \ xxxx

    %NUMBER_OF_PROCESSORS% (numeer_of_processors) 系统指定安装在计算机上的处理器的数目。

    %OS% (os)系统返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。 Windows_NT

    %PATH% (path)系统指定可执行文件的搜索路径。 C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:Program FilesVc++ToolsWinNT;C:Program FilesVc++MSDev98Bin;C:Program FilesVc++Tools;C:Program FilesVC98in

    %PATHEXT% (pathext)系统返回操作系统认为可执行的文件扩展名的列表。 .COM .EXE .BAT .CMD .VBS .VBE .JS .JSE .WSF .WSH

    %PROCESSOR_ARCHITECTURE% (processor_architecture) 系统返回处理器的芯片体系结构。值:x86 或 IA64 基于Itanium x86

    %PROCESSOR_IDENTFIER% (processor_identfier)系统返回处理器说明。

    %PROCESSOR_LEVEL% (processor_level)系统返回计算机上安装的处理器的型号。 15

    %PROCESSOR_REVISION% (processor_revision)系统返回处理器的版本号。 4f02

    %PROMPT% (prompt)本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。$P$G

    %RANDOM% (random)系统返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。 30580

    %SYSTEMDRIVE% (systemdrive)系统返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。 C:

    %SYSTEMROOT% (systemroot)系统返回 Windows server operating system 根目录的位置。C:WINDOWS

    %TEMP%(temp) C:DOCUME~1ADMINI~1LOCALS~1Temp和 %TMP% (tmp)C:DOCUME~1ADMINI~1LOCALS~1Temp系统和用户返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。

    %TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。

    %USERDOMAIN% (userdomain)本地返回包含用户帐户的域的名称。 xxxx

    %USERNAME% (username)本地返回当前登录的用户的名称。 Administrator

    %USERPROFILE% (userprofile)本地返回当前用户的配置文件的位置。 C:Documents and SettingsAdministrator

    %WINDIR%(windir) 系统 返回操作系统目录的位置。 C:WINDOWS