批次中%~1和%1之间的差异?

时间:2017-11-22 03:01:17

标签: batch-file variables

在批处理中,我有时会看到用于开关的%~1以及%1。有什么区别?他们似乎都适合我。

示例:

if "%~1"=="" echo No variable specified.

if "%1"=="" echo No variable specified.

似乎可以互换。

1 个答案:

答案 0 :(得分:1)

解释在For /?call /? 中展开%1,删除任何周围的引号(")

    %~1         - expands %1 removing any surrounding quotes (")
    %~f1        - expands %1 to a fully qualified path name
    %~d1        - expands %1 to a drive letter only
    %~p1        - expands %1 to a path only
    %~n1        - expands %1 to a file name only
    %~x1        - expands %1 to a file extension only
    %~s1        - expanded path contains short names only
    %~a1        - expands %1 to file attributes
    %~t1        - expands %1 to date/time of file
    %~z1        - expands %1 to size of file
    %~$PATH:1   - searches the directories listed in the PATH
                   environment variable and expands %1 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

您可能会发现此链接很有趣Command to run a .bat file