分享

批处理:PUSHD和CD的区别

 shamo9966 2015-10-14
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的区别.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多