有时候我们看到别人使用%~dp0

~是扩展的意思,相当于把一个相对路径转换绝对路径
%0代指批处理文件自身
%1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推
%~d0 是指批处理所在的盘符,其中d代表drive
%~p0 是指批处理所在的目录,其中p代表path
%~dp0 是批处理所在的盘符加路径

cd %~dp0 就是进入批处理所在目录了

详细解释还可参考命令 call /?

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

(注: %0 就是该 batch 文件的文件名)
这句的意思是 
更改当前目录为批处理本身的目录 
有些晕吧?不急,我举例 
比如你有个批处理 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

扩充变量语法详解:
:: 选项语法 : 
:: ~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

下面是实例解析:

如果一个install.bat文件位于D:\jeesite\bin
文件内容如下:

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

  运行install.bat,命令行输出如下

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

  

即:
%0代表文件本身
d代表盘符
p代表路径
扩展的选项还包括:

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

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

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

[INFO] install
%~x0 - 文件扩展名

[INFO] .bat

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

等等

DOS批处理中%~dp0等扩充变量语法详解的更多相关文章

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

    https://www.jianshu.com/p/5a1a882ead95 https://www.cnblogs.com/cnpirate/p/5282324.html https://www.c ...

  2. DOS批处理中%cd%和%~dp0的区别

    DOS批处理中%cd%和%~dp0的区别   在DOS的批处理中,有时候需要知道当前的路径. 在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0.       这两个变量 ...

  3. DOS批处理中%cd%和%~dp0的区别[forward]

    DOS批处理中%cd%和%~dp0的区别   在DOS的批处理中,有时候需要知道当前的路径. 在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0.      这两个变量的 ...

  4. DOS批处理中%cd%与%~dp0的区别详解

    转载:https://www.jb51.net/article/105325.htm DOS批处理中%cd%与%~dp0的区别详解     Windows下批处理中%cd%和%~dp0都能用来表示当前 ...

  5. DOS批处理中对含有特殊字符的文件名的处理方法

    从一些网站下载的文件,文件名带有广告,典型的就是网站的名称和域名,搞得文件名很长.在一些场景下,广告看得见,真正的文件名却被...了.在以前,我是遇到就手工去掉广告,但一是麻烦,二是效率低.反正经常下 ...

  6. 解决DOS批处理中一个困扰我几十个月的编码问题

    DOS批处理中的编码很有意思.&是命令连接符,先执行&左边的命令,再执行&右边的命令.|是管道操作,把左边的输出当作右边的输入.此外还有&&和||,当要表示这些 ...

  7. Velocity魔法堂系列二:VTL语法详解

    一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...

  8. Hadoop Hive sql语法详解

    Hadoop Hive sql语法详解 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件 ...

  9. Thymeleaf3语法详解和实战

    Thymeleaf3语法详解 Thymeleaf是Spring boot推荐使用的模版引擎,除此之外常见的还有Freemarker和Jsp.Jsp应该是我们最早接触的模版引擎.而Freemarker工 ...

随机推荐

  1. python(29)Tinker+BeautifulSoup+Request抓取美女壁纸

    原文链接:http://www.limerence2017.com/2019/10/22/python29/ 抓取准备 今天是10月24日,祝所有程序员节日快乐.今天打算写个爬虫抓取3DMGAME论坛 ...

  2. iOS源码学习总结框架

    1.ARChromeActivity: 用于在Google Chrome中打开网址的UIActivity子类. 2.KINWebBrowser: 它使用iOS 8的 WKWebView API编写,同 ...

  3. body和document的梗

    http://bbs.zhinengshe.com/thread-1199-1-1.html 1. 在空白的页面加点击事件,是加在body上么 ? <!DOCTYPE html> < ...

  4. Ajax上传文件到C#Action中

      引用js文件包:jquery.form.js可以下载 http://malsup.com/jquery/form/#download <script src="script/jqu ...

  5. java:Linux(简单命令,远程ssh使用hostname访问,.免密钥登录配置)

    1.临时关闭防火墙: service  iptables  stop 临时开启防火墙: service  iptables  start 查看防火墙状态: service  iptables  sta ...

  6. 聊聊GO-REDIS的一些高级用法

    1. 前言 说到Golang的Redis库,用到最多的恐怕是redigo 和 go-redis.其中 redigo 不支持对集群的访问.本文想聊聊go-redis 2个高级用法 2. 开启对Clust ...

  7. httpClient 进行get请求

    String url = baseUrl; logger.info("checkIfTheFolderIsExist"); CloseableHttpClient httpClie ...

  8. app测试自动化操作方法之一

    1.在输入框里输入字符 dr.find_element_by_android_uiautomator\ ( 'new UiSelector().text("邮箱或手机号")').s ...

  9. selenium三种断言以及异常类型

    elenium提供了三种模式的断言:assert .verify.waitfor 1)Assert(断言) 失败时,该测试将终止. 2)Verify(验证) 失败时,该测试将继续执行,并将错误记入日志 ...

  10. python-Web-django-图形验证

    import random def get_random_color(): return (random.randint(0, 255), random.randint(0, 255), random ...