在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. 浅析富文本编辑器框架Slate.js

    浅析富文本编辑器框架Slate.js 本文不是关于Slate.js使用入门的文章,如果还不了解该框架,建议先阅读下官方的文档:Slate官网文档 关于Slate的一些特性 不同于其他编辑器类的库,Sl ...

  2. CRM客户管理系统哪个好用

    当企业管理者在进行CRM系统的选型时,面对搜索引擎上五花八门的结果和各式各样的广告,一定会有这样的疑惑:CRM客户管理系统到底哪个好用?抛开网上那些为了广告效果而"夸张"出的优点, ...

  3. Docker:docker搭建redis6.0.8集群

    下载redis镜像 #拉取镜像 docker pull redis:6.0.8 查看版本 #查看版本 docker inspect redis 生成redis.conf配置文件 #在 /home/re ...

  4. vsftpd配置文件详解(转)

      vsftpd配置文件详解     1.默认配置: 1>允许匿名用户和本地用户登陆.      anonymous_enable=YES      local_enable=YES 2> ...

  5. 单点登录(SSO)实现原理(转)

    简介 单点登录是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的保护资源,若用户在某个应用系统中进行注销登录,所有的应用系统都不能再直接访问保护资源,像一些知名的大型网站,如:淘 ...

  6. 关于SOA和AOP

    SOA:面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.C/S端框架有WPF,服务端应用程序有WCF.asp.net web ...

  7. Dapper的基本使用 [转]

    Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂的配置文件,一个单文件就可 ...

  8. [Kong] key-auth实现对API请求的密钥认证

    目录 1. 配置密钥验证插件 2. 确认插件配置正确 3. 创建cunsumer 4. 给cunsumer提供关键凭证 5. 验证 6. 小结 [前言]: 下面我们将配置key-auth插件以向服务添 ...

  9. python -- 程序结构

    一.程序结构 • 定义python文件的头部模板:在File->Settings->Editor->File and Code Templates->Python script ...

  10. LCT(Link-Cut-Tree)

    LCT(Link-Cut-Tree) LCT维护一个森林,即把每个节点用splay维护,可以进行许多操作: 查询.修改链上的信息 随意指定原树的根(即换根) 动态连边.删边 合并两棵树.分离一棵树 动 ...