pushd %~dp0 : 把批处理所在的路径设为当前路径 cd /d "%~dp00PE_0606_for_ud" : 改变当前路径到 批处理所在路径下的dp00PE_0606_for_ud cd /d "%~dp0" : 改变当前路径到 批处理所在路径 首先 %0 是指批处理文件本身
%~dp0 是对%0的扩展,d是drive,也就是盘符,p是路径,所以%~dp0是指批处理所在的路径(包括盘符) pushd是设定工作目录 所以 PUSHD %~dp0 就是设定批处理所在的目录为工作目录 "%~dp00PE_0606_for_ud"也就是批处理所在目录下0PE_0606_for_ud目录 当cd的目标路径包括盘符,需要加/d cd /d "%~dp0" cd /d "%~dp00PE_0606_for_ud" 这两个就不用在解释了把 PUSHD临时指定当前路径.
一般和POPD配套使用.(回到上一个PUSHD前的路径) 也可以用于SETLOCAL语句中防止运行目录被改变. 例子 CD /D C:\WINDOWS echo.当前目录是%cd% PUSHD %~dp0 echo.当前目录是%CD% popd echo.当前目录是%cd% call :test echo.调用一个批处理标签后当前目录是%cd% pause :test setlocal pushd e:\ echo.当前目录是%cd% goto :eof 通过以上的例子就可以发现PUSHD和CD的区别. |
|