系统动态变量
动态变量,顾名思义,变量是动态的,会跟据环境的不同,在你使用的时候他的值也是不同的。
%CD% - 当前目录。
%DATE% - 当前日期。
%TIME% - 当前时间。
%RANDOM% - 得到一个十进制数字的随机数 (0 和 32767 之间的任意)
%ERRORLEVEL% - 当前 ERRORLEVEL 数值。
%CD% - 当前目录。
%DATE% - 当前日期。
%TIME% - 当前时间。
%RANDOM% - 得到一个十进制数字的随机数 (0 和 32767 之间的任意)
%ERRORLEVEL% - 当前 ERRORLEVEL 数值。
%USERPROFILE%-当前用户的home目录:如C:\Users\Administrator.USER-20141002FV
%TEMP%和%TMP%:当前用户的临时文件存放路径。如:C:\Users\ADMINI~1.USE\AppData\Local\Temp
%PATH%
%windir%:windows的安装目录。
读取用户输入
set input=
set /p input=please input:
使用参数
批处理中可以使用参数,一般从1%到 9%这九个,当有多个参数时需要用shift来移动,这 种情况并不多见,我们就不考虑它了。 另外%0表示当前批处理的文件名(全路径并含后缀)
@echo off
if "%1"=="a" format a:
if "%1"=="a" format a:
set与变量设置表达式运算
set a=100;
set /p input=prompt
set /a m=1+1
setlocal与endlocal命令与局部变量:
@echo off
setlocal path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out
setlocal path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out
choice 命令
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
比如: choice /c:dme defrag,mem,end 将显示
defrag,mem,end[D,M,E]?
示例1:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (应先判断数值最高的错误码)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem