DOS批处理中%~dp0表示什么意思

https://www.jianshu.com/p/5a1a882ead95html

https://www.cnblogs.com/cnpirate/p/5282324.htmlthis

https://www.cnblogs.com/langtianya/p/5171169.htmlspa

*********************************************命令行

若是一个install.bat文件位于D:\jeesite\bin
文件内容以下:code

@echo off
echo [INFO] This is a demo.
echo [INFO] %~dp0
pause

运行install.bat,命令行输出以下htm

[INFO] This is a demo.
[INFO] D:\jeesite\bin\blog

即:

  • %0表明文件自己
  • d表明盘符
  • p表明路径

扩展的选项还包括:字符串

  • %~f0 - 完整的路径+文件名

[INFO] D:\jeesite\bin\install.batget

  • %~n0 - 文件名(无扩展名)

[INFO] installit

  • %~x0 - 文件扩展名

[INFO] .bat

%~s0        - 扩充的路径只含有短名(“s”为Short,短的)
%~a0        - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
%~t0        - 将 %0 扩充到文件的日期/时间(“t”time)
%~z0        - 将 %0 扩充到文件的大小(Size 大小)
*****************************

转载自 www.cnblogs.com/yxsylyh 转载内容以下:

cd /D %~dp0的意思以下:

更改当前目录为批处理自己的目录 
好比你有个批处理a.bat在D:\qq文件夹下 
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 

扩展阅读:

%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录
cd是转到这个目录,不过我以为cd /d %~dp0 还好些

选项语法:

~0 - 删除任何引号("),扩充 %0
%~f0 - 将 %0 扩充到一个彻底合格的路径名(“f”是file,即文件)
%~d0 - 仅将 %0 扩充到一个驱动器号
%~p0 - 仅将 %0 扩充到一个路径
%~n0 - 仅将 %0 扩充到一个文件名(“n”是name 文件名)
%~x0 - 仅将 %0 扩充到一个文件扩展名
%~s0 - 扩充的路径只含有短名(“s”为Short,短的)
%~a0 - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)
%~t0 - 将 %0 扩充到文件的日期/时间(“t”time)
%~z0 - 将 %0 扩充到文件的大小(Size 大小)
%~$PATH:0 - 查找列在路径环境变量的目录,并将 %0 扩充
到找到的第一个彻底合格的名称。若是环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串

能够组合修饰符来获得多重结果:

%~dp0 - 仅将 %0 扩充到一个驱动器号和路径
%~nx0 - 仅将 %0 扩充到一个文件名和扩展名
%~fs0 - 仅将 %0 扩充到一个带有短名的完整路径名
%~dp$PATH:0 - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个驱动器号和路径。
%~ftza0 - 将 %0 扩充到相似输出线路的 DIR

%0为当前批处理文件
若是0换成1为第一个文件,2为第2个

*************************
DOS批处理中%cd%和%~dp0的区别
 
在DOS的批处理中,有时候须要知道当前的路径。
在DOS中,有两个环境变量能够跟当前路径有关,一个是%cd%, 一个是%~dp0。
 
    这两个变量的用法和表明的内容是不一样的。
 
    1. %cd% 能够用在批处理文件中,也能够用在命令行中;
展开后,是驱动器盘符:+当前目录,如在 dos窗口中进入c:\dir目录下面,  www.2cto.com  
输入:echo %cd% ,则显示为:c:\dir 。
 
   %cd%的内容是能够被改变的,其内容为命令的执行路径或批处理文件的执行路径。
    2.%~dp0只能够用在批处理文件中,它是由它所在的批处理文件的目录位置决定的,
是批处理文件所在的盘符:+路径。在执行这个批处理文件的过程当中,
它展开后的内容是不能够改变的。好比在D盘下有个批处理文件,path.bat,其内容为:
 
[plain]
@echo off     
echo this is %%cd%%  %cd%     
echo this is %%~dp0 %~dp0   
 
在C:\ 和E:\分别下执行它,输出为c:\>d:\Path.batthis is %cd% c:\this is %~dp0 d:\c:\>e:e:\>d:\Path.batthis is %cd% e:\this is %~dp0 d:\
相关文章
相关标签/搜索