%~dp0 是什么意思,它是如何工作的? [英] What does %~dp0 mean, and how does it work?

查看:30
本文介绍了%~dp0 是什么意思,它是如何工作的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现 %~dp0 非常有用,我经常使用它来使我的批处理文件更具便携性.

I find %~dp0 very useful, and I use it a lot to make my batch files more portable.

但是标签本身对我来说似乎很神秘...... ~ 在做什么?dp 是指驱动器和路径吗?0 是否指的是 %0,即包含文件名的批处理文件的路径?

But the label itself seems very cryptic to me... What is the ~ doing? Does dp mean drive and path? Does the 0 refer to %0, the path to the batch file that includes the file name?

或者只是一个奇怪的标签?

Or it is just a weird label?

我还想知道它是记录在案的功能,还是容易被弃用的功能.

I'd also like to know if it is a documented feature, or something prone to be deprecated.

推荐答案

调用

for /?

在命令行中提供有关此语法的帮助(也可以在 FOR 之外使用,这只是可以找到帮助的地方).

in the command-line gives help about this syntax (which can be used outside FOR, too, this is just the place where help can be found).

另外,替换为 FOR变量引用已得到增强.您现在可以使用以下可选语法:

In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I to a drive letter only
%~pI        - expands %I to a path only
%~nI        - expands %I to a file name only
%~xI        - expands %I to a file extension only
%~sI        - expanded path contains short names only
%~aI        - expands %I to file attributes of file
%~tI        - expands %I to date/time of file
%~zI        - expands %I to size of file
%~$PATH:I   - searches the directories listed in the PATH
               environment variable and expands %I to the
               fully qualified name of the first one found.
               If the environment variable name is not
               defined or the file is not found by the
               search, then this modifier expands to the
               empty string

修饰符可以组合得到复合结果:

The modifiers can be combined to get compound results:

%~dpI       - expands %I to a drive letter and path only
%~nxI       - expands %I to a file name and extension only
%~fsI       - expands %I to a full path name with short names only
%~dp$PATH:I - searches the directories listed in the PATH
               environment variable for %I and expands to the
               drive letter and path of the first one found.
%~ftzaI     - expands %I to a DIR like output line

在上面的例子中 %I 和 PATH 可以替换为其他有效值.%~ 语法以有效的结尾FOR 变量名.选择大写像 %I 这样的变量名使它更多可读并避免与修饰符,不是大小写敏感.

In the above examples %I and PATH can be replaced by other valid values. The %~ syntax is terminated by a valid FOR variable name. Picking upper case variable names like %I makes it more readable and avoids confusion with the modifiers, which are not case sensitive.

您可以使用不同的字母,例如 f 表示完整路径名",d 表示驱动器号,p 表示路径,以及它们可以组合在一起.%~ 是每个序列的开头,数字 I 表示它适用于参数 %I(其中 %0 是批处理文件的完整名称,就像您假设的那样).

There are different letters you can use like f for "full path name", d for drive letter, p for path, and they can be combined. %~ is the beginning for each of those sequences and a number I denotes it works on the parameter %I (where %0 is the complete name of the batch file, just like you assumed).

这篇关于%~dp0 是什么意思,它是如何工作的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆