对于一个脚本而言,获取自身所在的路径是非常常见的操作。在 sh 中,我一般通过 dirname "$0" 的方式来获取脚本自身所在的路径。但在 .bat 中,首先是没有 dirname 这个好用的命令,其次是没有 `command` 这种运行一个命令并取得输出内容的方法,因此获取自身所在路径就有没那么看上去很优雅很 Unix 的方法了。不过还好,微软对 .bat 增加了一些扩展功能,其中就包括了获取自身所在路径,只要通过传说中的参数扩展语法就可以实现了。获取自身路径的方法是:%~dp0

简要解释一下,%~ 表示使用参数扩展语法,dp 表示扩展之后的参数为只包含盘符和路径的形式,不包含文件名,接下来的 0 表示第 0 个参数,也就是该 .bat 文件自身。

在命令行中输入 help for 可以看到完整的参数扩展语法列表。