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

 

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

[email protected]
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的官方参考在这里

你可能感兴趣的:(etc)