原文地址:点击打开
先说总结:
pushd命令:把后面参数指向的路径放置在虚拟堆栈中,并且换到此路径。注意,其实是有两个步骤的操作,第一,把路径放入虚拟堆栈,第二,将当前目录切换到路径。
popd命令:设置虚拟堆栈中最上面目录删除,并把第二上面的目录设置成当前目录。
PUSHD命令
保存当前目录以供 POPD 命令使用,然后改到指定的目录。
PUSHD [path | ..]
path 指定要成为当前目录的目录。
如果命令扩展被启用,除了一般驱动器号和路径,PUSHD
命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个
指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器
号更改当前的驱动器和目录。可以从 Z: 往下分配临时驱动器
号,使用找到的第一个没有用过的驱动器号。
POPD命令
更改到 PUSHD 命令存储的目录。
如果命令扩展被启用,从推目录堆栈 POPD 驱动器时,POPD
命令会删除 PUSHD 创建的临时驱动器号。
例如
pushd c:就是记录下c:盘当你转去E:盘后用popd就可以转回c盘
示例
1、例1
PUSHD %~dp0
%~dp0 是对%0的扩展,d是drive,也就是盘符,p是路径,所以%~dp0是指批处理所在的路径(包括盘符)。pushd是设定工作目录。所以 PUSHD %~dp0 就是设定批处理所在的目录为工作目录
2、例2
PUSHD "%~dp0test"
"%~dp0test"也就是批处理所在目录下test目录,所以 PUSHD %~dp0test就是设定批处理所在的目录下的test目录为工作目录
3、例3
pushd 绝对路径(也就是你要调用的那个批处理程序的目录)..
call xxx.bat
popd..