将当前目录更改为batch file目录

我有一个执行procdump操作的窗口上的bat文件。 batch file的问题是,在执行作业之前,我需要先cd到batch file目录,否则脚本将无法工作。

如何改变到当前的batch file目录?

我在我的procdump.bat尝试了下面的代码:

 cd "%~dp" procdump -h devenv.exe mydump.txt 

但是失败了,错误信息是:

以下用于批处理参数replace的path运算符是无效的:%〜dp“

对于有效的格式,inputCALL /? 或FOR /?

编辑: 提供的答案是工作,但只有一个catch:如果我的当前目录不同于batch file目录,那么我会得到一个“系统找不到指定的path”。 任何人有任何想法?

这是错误的截图:

替代文字http://lh4.ggpht.com/_SDci0Pf3tzU/Syx-oYLyNEI/AAAAAAAAFWo/4Naqoci2u0c/s640/system%20cannot%20find.jpg

好吧,我想我在这里find你的意思是%~dp

我想你真正想要做的是这样的:

 cd "%~dp0" /D 

(!)但请注意,当您尝试执行批处理而当前目录位于另一个驱动器上时,由于cd不会更改活动驱动器,所以这仍然不会为您提供正确的行为。

编辑 :显然(谢谢@Yoopergeek )你可以添加/D参数的cd命令,让它也改变活动的驱动器。

我会留下评论fretje的答案,但显然我不能?


无论如何,关于说明:
但请注意,当您尝试执行批处理而当前目录位于另一个驱动器上时,由于cd不会更改活动驱动器,因此这仍然不会给您正确的行为。


使用CD命令中的/D开关,CD将更改当前驱动器。