我只知道编写批处理文件的基础知识。我试图弄清楚如何编写一个,在给定任何目录的情况下,它将复制同一目录中的文件并将其放在新位置。我知道如何复制文件并移动它,但我不知道如何编写批处理文件以了解其目录,然后获取另一个文件。
我读到%0表示文件所在的目录,但是如何将文件附加到该目录?
我试过这个:
copy "%0\Move.txt" "C:\"
也许那是愚蠢但我是新手。请帮忙吗?
答案 0 :(得分:19)
%0
包含批处理脚本的完整路径和文件名。仅使用%~dp0
获取没有批处理脚本文件名的路径。
copy "%~dp0\Move.txt" "C:\"
使用echo
命令查看遇到问题时变量的含义。
echo %0
来自call /?
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 %*
答案 1 :(得分:2)
如果您只是尝试将文件从当前目录复制到新目录,则可以执行以下操作:
copy "Move.txt" "C:\"
不为文件前缀“Move.txt”表示它位于当前目录中。