批处理 - 使用相对路径复制文件

31

我是一个批处理的初学者。 我想通过批处理命令将文件\Debug\test.ext复制到..\..\new

我尝试过copy "\Debug\text.txt" "..\..\new",但出现错误“系统找不到指定的文件”。


如果您想使用相对路径,您应该提供当前活动文件夹(输入cd而不带参数)。 - Endoro
6个回答

48

如果您以 \ 开始路径,那么这是一个绝对路径而不是相对路径。请尝试改用 copy "Debug\text.txt" "..\..\new"


1
如果您有Debug子目录,请尝试使用。
md   "..\..\new" >nul 2>&1
copy ".\Debug\text.txt" "..\..\new"

如果你还没有md创建的目录,md会在两级目录上创建一个new目录。

0

如果您正在使用批处理运行复制命令,则语法应为:

bat 'copy "C:\\Program Files (x86)\\ApplicationFiles\\firstfolder\\application.yml" "C:\\Program Files (x86)\\ApplicationFiles\\secondfolder\\application.yml"'

上述命令中有两个主要内容:

  1. 如果您的文件路径包含空格,则将路径用双引号括起来。
  2. 在使用Windows文件路径时,请使用转义字符,因为某些命令行工具需要对文件路径进行转义。因此,不要使用'\',而是使用'\\'。这将有助于您在CI/CD工具中运行批处理命令。

0

Windows 10中,相对路径的正确命令是:
copy "%~dp0%\your_file_name.extension" "%systemdrive%\Some Folder\Other Folder"
解释:

  • 文件或文件夹名称包含空格时需要加引号。
  • %~dp0%设置当前目录。无需考虑驱动器号或有多少级子文件夹。它可以用于前向和后向文件夹,例如"%~dp0%\subfolder\your_file.ext""%~dp0%\..\..\your_file.ext"(>>> 对于向后的文件夹,请参考此链接Get the path two directories up in batch file)。
  • %systemdrive%是系统所在的驱动器。

-1
为了正确地引用完整路径,需要包括驱动器、文件夹名称和具有正确文件格式的文件名。
例如: "C:\Testfolder\test.txt"
如果在网络中引用,则为: "\\192.168.1.225\c$\testfolder\test.txt"
这样可以正常工作。

-1
这意味着您没有指定正确的路径。请确保指定文件的正确完整路径。
不要使用"\Debug\text...."这样的相对路径,而是使用完整路径,例如"C:\Debug\text..."。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接