您的位置:首页 > 其它

如何在batch文件中取得该文件的路径

2006-04-01 11:31 232 查看

如何在batch文件中取得该文件的路径

hanlray@gmail.com
Revision: 0.99 Date: 2006/04/01
很简单,就是用%~dp0,如:

set MYDIR=%~dp0

%~dp是一个batch参数的一个Modifier,这里是修饰%0参数,当然也可以有%~dp1,%~dp2等,按照Microsoft官方的说法,%~dp1的含义是"Expands %1 to a drive letter and path",按照我的理解,其实就是把%x看作一个文件参数时被Comamnd Shell定位到的位置的绝对路径(不包括文件名),如:

C:/>D:/tmp/test.bat
%dp0为D:/tmp,%0已经是个绝对路径了,自然是D:/tmp
D:/tmp>test.bat
%dp0还是D:/tmp,因为此时test.dat是一个相对路径,而在Windows Shell中,文件的相对路径是相对于当前目录的
C:/tmp>D:/tmp/test.bat foo
此时%dp0还是D:/tmp,而%dp1就是C:/tmp了,道理同上
C:/tmp>D:/tmp/test.bat ../foo
此时%dp1就是C:/

不过%~dp0似乎不能在Win9X上工作,alt.msdos.batch里的How to get the path of a batch file貌似解决了这个问题

一个比较全batch相关资源在这里

Microsoft的官方参考在这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: