在Windows脚本中,%i类似于shell脚本中的$i,%0表示脚本本身,%1表示脚本的第一个参数,以此类推到%9,在%和i之间可以有“修饰符”(完整列表可通过"for /?"指令查看),表示对%i进行各种处理,其中d表示盘符,p表示除盘符外的路径,n表示文件名,x表示扩展名,f表示全路径(路径+文件名),s表示8.3格式的全路径,修饰符可以组合,所以%~dp0的意思是:脚本本身(%0)的路径(盘符d+路径p)。下面是实例演示,在F:\ghost\tmpFiles\下新建aa.bat文件,内容如下:

@echo off
echo %%0 = %0
echo %%1 = %1
echo %%2 = %2
echo %%~0 = %~0
echo %%~1 = %~1
echo %%~2 = %~2
echo %%~d0 = %~d0
echo %%~p0 = %~p0
echo %%~dp0 = %~dp0
echo %%~n0 = %~n0
echo %%~x0 = %~x0
echo %%~nx0 = %~nx0
echo %%~f0 = %~f0
echo %%~s0 = %~s0
echo %%~fs0 = %~fs0
echo %%~dp1 = %~dp1
echo %%~nx1 = %~nx1
echo %%~fs1 = %~fs1
echo %%~dp2 = %~dp2
echo %%~nx2 = %~nx2
echo %%~f2 = %~f2
echo %%~s2 = %~s2
echo %%~fs2 = %~fs2

然后加两个附加参数运行这个文件: "aa.bat f:\CMDTest.zip f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip",运行结果如下:

%0 = aa.bat
%1 = f:\CMDTest.zip
%2 = f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip
%~0 = aa.bat
%~1 = f:\CMDTest.zip
%~2 = f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip
%~d0 = F:
%~p0 = \ghost\tmpFiles\
%~dp0 = F:\ghost\tmpFiles\
%~n0 = aa
%~x0 = .bat
%~nx0 = aa.bat
%~f0 = F:\ghost\tmpFiles\aa.bat
%~s0 = F:\ghost\tmpFiles\aa.bat
%~fs0 = F:\ghost\tmpFiles\aa.bat
%~dp1 = f:\
%~nx1 = CMDTest.zip
%~fs1 = f:\CMDTest.zip
%~dp2 = f:\warez\Develop\C\
%~nx2 = codeblocks-12.11mingw-setup.zip
%~f2 = f:\warez\Develop\C\codeblocks-12.11mingw-setup.zip
%~s2 = f:\warez\Develop\C\CODEBL~1.ZIP
%~fs2 = f:\warez\Develop\C\CODEBL~1.ZIP

参考What does %~dp0 mean, and how does it work?

bat脚本中%~dp0含义解释的更多相关文章

  1. 关于bat脚本中的命令状态码相关的%errorlevel%变量

    bat脚本中常用%errorlevel%表达上一条命令的返回值,即命令执行状态码.也称命令退出码 一般上一条命令的执行结果返回的值只有两种,0和非0 (如常见的1,2,4,5,9009等等),0一般会 ...

  2. 脚本中 %~dp0

    cmd窗口中 for /? 查询参数含义 %~dp0, 将参数转换为磁盘路径+名字 例: 脚本中一行 %~dp0abc.exe (abc.exe位置c:\test\abc.exe) 展开后则为 c:\ ...

  3. Windows的bat脚本中for循环

    转载至 http://123304258.blog.163.com/blog/static/12354702012621103256608/   [删除目录下某种格式的文件 ] for /r  f:\ ...

  4. 推荐一个SAM文件或者bam文件中flag含义解释工具

    SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools. ...

  5. 推荐一个SAM文件中flag含义解释工具--转载

    SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这样的文件.samtools网站上有专门的文档介绍SAM文件.具体地址:http://samtools. ...

  6. 31、SAM文件中flag含义解释工具--转载

    转载:http://www.cnblogs.com/nkwy2012/p/6362996.html  SAM是Sequence Alignment/Map 的缩写.像bwa等软件序列比对结果都会输出这 ...

  7. 【转】在cmd/bat脚本中获取当前脚本文件所在目录

    一.关于cd的/d参数 关于cd 的/d参数,在cmd中敲入cd /?可以看到/d参数的解释如下: 使用 /D 命令行开关,除了改变驱动器的当前目录之外,还可改变当前驱动器.这句话不太好理解,我做个试 ...

  8. 解决Bat脚本中包含中文,运行乱码

    bat文件右键用“编辑” 打开, 另存为时,UTF-8保存为ANSI 格式.即可解决运行时乱码问题.

  9. 如何解决Bat脚本中包含中文,运行乱码

    bat文件右键用“ 编辑”  打开, 另存为时,UTF-8保存为ANSI 格式.即可解决运行是乱码问题, 有notepad++更好 修改直接保存,也不用另存为.

随机推荐

  1. SpringBoot Cache 深入

    这上一篇文章中我们熟悉了SpringBoot Cache的基本使用,接下来我们看下它的执行流程 CacheAutoConfiguration 自动装配类 根据图中标注,看到它引用了CachingCon ...

  2. 通过CRM客户系统改变销售工作模式

    CRM客户管理软件对于企业来说,能够优化销售流程.维护客户关系.销售流程管理等.但是很多销售人员认为企业购买CRM软件,是用来监视他们的武器,自然会受到销售团队的抵触.所以经常会出现管理者辛苦的选型, ...

  3. CentOS-yum安装Redis(单点)

    源文件安装(推荐安装) 在CentOS系统中,首先安装EPEL仓库,然后更新yum源: $ yum install epel-release -y $ yum update -y 然后安装Redis数 ...

  4. 『无为则无心』Python函数 — 27、Python函数的返回值

    目录 1.返回值概念 2.return关键字的作用 3.返回值可以返回的数据类型 4.函数如何返回多个值 5.fn5 和 fn5()的区别 6.总结: 1.返回值概念 例如:我们去超市购物,比如买饮料 ...

  5. PO,VO,BO,POJO,DAO的区别

    基本概念 PO:persistant object (持久化对象),可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不 ...

  6. Exception 和Error异常大部分人都犯过的错。

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员. 我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 1,简介 Exception ...

  7. python使用笔记12--操作mysql数据库

    1.创建连接 1 import pymysql 2 connect = pymysql.connect(host='127.0.0.1', 3 user='root', 4 password='123 ...

  8. C语言:char 常量写法及变量赋值

    #include <stdio.h> main() { char zfx_1,zfx_2,zfx_3,zfx_4,zfx_5,zfx_6,zfx_7,zfx_8; zfx_1='a';// ...

  9. 【LeetCode】389.找不同

    389.找不同 知识点:哈希表.抵消思想: 题目描述 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. ...

  10. Pytest单元测试框架之setup/teardown模块示例操作

    """模块级(setup_module/teardown_module)开始于模块始末,全局的函数级(setup_function/teardown_function)只 ...