无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 17051|回复: 9
打印 上一主题 下一主题

批处理中的PUSHD %~dp0是什么意思

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-3 07:38:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PUSHD %~dp0

cd /d "%~dp00PE_0606_for_ud"

cd /d "%~dp0"

批处理中的这些是什么意思?
2#
发表于 2009-7-3 17:17:23 | 只看该作者
pushd %~dp0 :  把批处理所在的路径设为当前路径
cd /d "%~dp00PE_0606_for_ud" : 改变当前路径到 批处理所在路径下的dp00PE_0606_for_ud

cd /d "%~dp0" : 改变当前路径到 批处理所在路径
回复

使用道具 举报

3#
发表于 2009-7-4 02:53:06 | 只看该作者
首先 %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"
这两个就不用在解释了把
回复

使用道具 举报

4#
发表于 2009-7-4 10:02:14 | 只看该作者
谢谢各位,不错,学习了!
回复

使用道具 举报

5#
 楼主| 发表于 2009-7-4 20:50:34 | 只看该作者
我也得谢谢,现在知道了
回复

使用道具 举报

6#
发表于 2009-7-5 20:26:15 | 只看该作者
终于知道了什么意思,谢谢2楼和3楼。
回复

使用道具 举报

7#
发表于 2009-7-5 21:20:58 | 只看该作者
PUSHD临时指定当前路径.
一般和POPD配套使用.(回到上一个PUSHD前的路径)
也可以用于SETLOCAL语句中防止运行目录被改变.
例子
CD /D C:\WINDOWS
echo.当前目录是%cd%
PUSHD %~dp0
echo.当前目录是%CD%
popd
echo.当前目录是%cd%
call :test
echo.调用一个批处理标签后当前目录是%cd%
goto :eof

:test
setlocal
pushd e:\
echo.当前目录是%cd%
goto :eof

通过以上的例子就可以发现PUSHD和CD的区别.
回复

使用道具 举报

8#
发表于 2010-12-27 15:41:31 | 只看该作者
学习了。。这个我现在才知道
回复

使用道具 举报

9#
发表于 2010-12-27 21:45:12 | 只看该作者
好吧~~!
好吧~~!
好吧~~!
好吧~~!
好吧~~!
回复

使用道具 举报

10#
发表于 2010-12-28 08:28:31 | 只看该作者
看一下 PUSHD  /? 和 for /? 就知道了。
%0 表示当前批处理文件

[ 本帖最后由 dos时代菜鸟 于 2010-12-28 08:29 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 09:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表