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

 

如何在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的官方参考在这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值