Windows 从批处理文件复制文件';s目录

Windows 从批处理文件复制文件';s目录,windows,batch-file,command-prompt,Windows,Batch File,Command Prompt,我只知道编写批处理文件的基本知识。我试图弄清楚如何编写一个,给定它所在的任何目录,它将复制同一目录中的文件并将其放在新位置。我知道如何复制和移动文件,但我不知道如何编写批处理文件以了解其目录,然后获取不同的文件 我读到%0表示文件所在的目录,但我如何才能将文件附加到该目录 我试过这个: copy "%0\Move.txt" "C:\" 也许那很愚蠢,但我是个新手。请提供帮助?如果您正试图将文件从当前目录复制到新目录,您只需执行以下操作: copy "Move.txt" "C:\" 不在文件“

我只知道编写批处理文件的基本知识。我试图弄清楚如何编写一个,给定它所在的任何目录,它将复制同一目录中的文件并将其放在新位置。我知道如何复制和移动文件,但我不知道如何编写批处理文件以了解其目录,然后获取不同的文件

我读到%0表示文件所在的目录,但我如何才能将文件附加到该目录

我试过这个:

copy "%0\Move.txt" "C:\"

也许那很愚蠢,但我是个新手。请提供帮助?

如果您正试图将文件从当前目录复制到新目录,您只需执行以下操作:

copy "Move.txt" "C:\"
不在文件“Move.txt”前面加前缀意味着它在当前目录中

%0
包含批处理脚本的完整路径和文件名。 仅使用
%~dp0
获取不带批处理脚本文件名的路径

copy "%~dp0\Move.txt" "C:\"
使用
echo
命令查看出现问题时变量所包含的内容

echo %0
呼叫/?

Substitution of batch parameters (%n) has been enhanced.  You can
now use the following optional syntax:

    %~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

The modifiers can be combined to get compound results:

    %~dp1       - expands %1 to a drive letter and path only
    %~nx1       - expands %1 to a file name and extension only
    %~dp$PATH:1 - searches the directories listed in the PATH
                   environment variable for %1 and expands to the
                   drive letter and path of the first one found.
    %~ftza1     - expands %1 to a DIR like output line

In the above examples %1 and PATH can be replaced by other
valid values.  The %~ syntax is terminated by a valid argument
number.  The %~ modifiers may not be used with %*

如果批处理脚本从具有不同工作目录集的命令行运行,则会出现问题。这就是为什么如果没有执行
cd
pushd
时经常使用
%0
的原因。啊,我当时误解了这个问题。谢谢,我很感激。但是,如果我键入echo%0,它只返回%0?@KyleWright
%0
表示参数0,该参数仅在批处理文件中可用<代码>回显%0不会直接在命令行上工作。