批处理——详解%~dp0 %~nx0

%~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

你可能感兴趣的:(Bat学习)