前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >批处理文件中%~dp0是什么意思?

批处理文件中%~dp0是什么意思?

作者头像
全栈程序员站长
发布2022-09-28 11:17:53
发布2022-09-28 11:17:53
4.5K0
举报

大家好,又见面了,我是你们的朋友全栈君

看批处理文件时,常遇到%~dp0之类的东西,不知其意思。打开Windows XP自带的帮助系统,搜索“batch”关键字,能找到有关介绍批处理文件的帮助。通过帮助我终于明白了%~dp0是什么意思,总结如下:

我们知道,%*是用来指批处理文件传入的参数。例如%0表示命令本身,%1表示传入的第一个参数,以此类推。开发一个批处理命令,有时候需要知道这个命令的路径、传入参数的路径等这些与路径相关的信息。一般的编程语言会提供一些类库或者API来完成与路径相关的任务,例如.NET中提供了File类、Directory类和Path类来做这些事情。在批处理文件中,使用%~*来完成与路径相关的任务,语法规则可以表示如下:

%~(f|d|p|n|x|s|a|t|z|$PATH)*[0-9]

先假定在F:\Temp\Batch目录下有一个test.bat批处理文件,这里执行的批处理命令行是:

F:\Temp>Batch\test “C:\Program Files\studying.txt”

上述的语法规则解释如下:

1. %~[0-9]:是指去除了引号的命令行参数

%~0指命令行本身,本例为Batch\test

%~1指第一个参数,本例为C:\Program Files\studying.txt 注:%1也指第一个参数,本例却为“C:\Program Files\studying.txt”,这里是有引号的。

以此类推……

2. %~f[0-9]:f – full,指绝对路径名

本例中:%~f0 – F:\Temp\Batch\test.bat

%~f1 – C:\Program Files\studying.txt

3. %~d[0-9]:d – driver,指盘符

本例中:%~d0 – F:

%~d1 – C:

4. %~p[0-9]:p – path,指不带盘符的目录名

本例中:%~p0 – \Temp\Batch\ 注:前后都有’\’

%~p1 – \Program Files\

5. %~ n[0-9]:n – name,指文件的名字,注意不带扩展名

本例中:%~n0 – test

%~n1 – studying

6. %~x[0-9]:x – extension,指文件的扩展名

本例中:%~x0 – .bat 注:前面有’.’

%~x1 – .txt

7. %~s[0-9]:s – short,指带有DOS短名字(8字符)的绝对路径

本例中:%~s0 – F:\TEMP\BATCH\test.bat

%~s1 – C:\PROGRA~1\studying.txt

注:这里的目录名全是大写,而文件名全是小写

8. %~a[0-9]:a – attribute,指文件的属性

本例中:%~a0 – –a——-

%~a1 – –a——-

注:这里每一位代表一种文件属性,具体的含义我也不知道,待查

9. %~t[0-9]:t – time,指文件的修改日期,注意不是创建日期

本例中:%~t0 – 2011-08-28 11:47

%~t1 – 2011-08-28 10:30

10. %~z[0-9]:z – size,指文件的大小

11. %~$PATH:[0-9]:PATH 指系统环境变量的那个PATH。搜索PATH里面的目录,看是否能够找到命令行参数指定的文件。找到此文件,输出该文件的绝对路径;没有找到此文件,输出空字符串。

12. 组合使用:上述的这些字符规则是可以组合起来使用的。例如,n和x组合表示带扩展名的文件名名字。

%~nx0 – test.bat

%~nx1 – studying.txt

回到标题给出的问题,我们可以推测出%~dp0表示的意思。d表示盘符,p表示不带盘符的路径,那么dp就表示带盘符的路径了。在本例中,我们可以得出:

%~dp0 – F:\Temp\Batch\

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193233.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月2日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档