如何用%~dp0命令自动获取当前盘符命令和A目录删除A目录里的某个文件,求bat代码

假设我们要在批处理a.bat里调用执行批处理b.batb.bat需要知道b.bat的当前位置,并执行run.exe如下:

 

那么现在能不能成功执行run.exe呢?

%cd%%~dp0都能用来表示当前目录但是他们在不同的使用场景下,功能却不相同:

我们来看看下面的例子:

 

直接运行d.bat结果为

 

直接运行c.bat,结果为

 

从上面的结果可以看出:

  1. 执行d.bat时当前工作目录为d.bat所在目录;
  2. 执行c.bat时,当前工作目录为c.bat所在目录即使在调用d.bat后,该工作目录依旧是c.bat所在目录

让我们再来看看问题描述中提及的问题――能不能成功执行run.exe呢?

 

上面的解决方案中plan A通过更改当前目录来解决该问题可以这里面也存在另外一个问题,让我们看下面的例子:

 

现在e.batf.bat不在同一個盘符命令了从e.bat切换当前工作目录到f.bat直接使用cd是不行的,必须要使用:

这个地方容易疏忽切记不要犯错。

我们来重申下%~dp0%cd%的区别 %cd%%~dp0都能用来表示当前目录,但是他们在不同的使用场景下功能却不相同:

从目前我们的使用情况来看,尽量使用%~dp0不建议使用%cd%,有其他需求除外

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助如果有疑问大家可以留言交流。

我要回帖

更多关于 盘符命令 的文章

 

随机推荐