亲,看看下面的对你有没有帮助,没有找到%~sdp0
a.bat内容为cd /d %~dp0
在这里
cd /d %~dp0的意思就是cd /d d:/qq
%0代表批处理本身 d:/qq/a.bat
~dp是变量扩充
d既是扩充到分区号 d:
p就是扩充到路径 /qq
dp就是扩充到分区号路径 d:/qq
扩充变量语法详解:
:: ~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
%0:表示批处理本身
%~sdp0:这里面的d:表示扩展到批处理文件所在的盘符;p表示扩展到批处理文件所在的路径.假如批处理文件在c盘的123文件下的test文件夹下:
c:\123\test\批处理文件:d:表示c:\;p表示123\test\
s:表示路径中含有短名
cd /d %~sdp0:就表示进入批处理文件所在的文件夹中
希望对你有帮助,望采纳!谢谢!
跳转到批处理文件自身目录