%~dp0 : 获取批处理文件的目录
OK,这一堆看起来好复杂,我们把它拆开个个击破 ! 举例说明 : 我在C:\What\The\Fuck\目录下有一个Test.bat文件
%0 : 该bat文件自身的绝对路径----------"C:\What\The\Fuck\Test.bat"----------(注意有引号)
~ : 删除任何以引号为起始的引号组(不详解了,注意领会精神~拖走)----------C:\What\The\Fuck\Test.bat
d : Drive驱动号----------C:
p : Path路径----------\What\The\Fuck\----------(注意前后的反斜杠)
把它们组合起来不需要再解释了吧~很简单吧,%~nx0就不详解了,我很懒~见下表即可
扩充变量语法详解:
:: 选项语法:
:: ~i - 删除任何引号("),扩充 %i
:: %~fi - 将 %i 扩充到一个完全合格的路径名
:: %~di - 仅将 %i 扩充到一个驱动器号
:: %~pi - 仅将 %i 扩充到一个路径
:: %~ni - 仅将 %i 扩充到一个文件名
:: %~xi - 仅将 %i 扩充到一个文件扩展名
:: %~si - 扩充的路径只含有短名
:: %~ai - 将 %i 扩充到文件的文件属性
:: %~ti - 将 %i 扩充到文件的日期/时间
:: %~zi - 将 %i 扩充到文件的大小
:: %~$PATH:i - 查找列在路径环境变量的目录,并将 %i 扩充
:: 到找到的第一个完全合格的名称。如果环境变量名
:: 未被定义,或者没有找到文件,此组合键会扩充到
:: 空字符串
:: 可以组合修饰符来得到多重结果:
:: %~dpi - 仅将 %i 扩充到一个驱动器号和路径
:: %~nxi - 仅将 %i 扩充到一个文件名和扩展名
:: %~fsi - 仅将 %i 扩充到一个带有短名的完整路径名
:: %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %i 扩充
:: 到找到的第一个驱动器号和路径。
:: %~ftzai - 将 %i 扩充到类似输出线路的 DIR