这看起来非常简单,也许我只是忽略了适当的标志,但是我如何在一个命令中将一个文件从一个目录复制到另一个目录并在目标目录中重命名它呢?这是我的命令:

if exist "bin\development\whee.config.example"
  if not exist "TestConnectionExternal\bin\Debug\whee.config"
    xcopy "bin\development\whee.config.example"
          "TestConnectionExternal\bin\Debug\whee.config"

它每次都会提示我以下内容:

TestConnectionExternal \ bin \调试\哟。配置指定文件名 或目标上的目录名(F =文件,D =目录)?

我想压制这个提示;答案总是F。


当前回答

所以,有一个简单的解决办法。这是公认的尴尬,但它有效。 如果新文件(文件名)已经存在,xcopy将不会提示查找目标是否为目录或文件。如果在xcopy命令前加上对新文件名的简单回显,它将覆盖空文件。例子

echo.>newfile.txt
xcopy oldfile.txt newfile.txt /Y

其他回答

我使用

echo f | xcopy /f /y srcfile destfile

为了绕过它。

我有一个类似的问题,robocopy和xcopy都没有帮助,因为我想压制注释并使用不同的目标文件名。我发现

type filename.txt > destfolder\destfilename.txt

按我的要求工作。

我建议robocopy而不是copy或xcopy。在客户端或服务器上作为命令或GUI使用。容忍网络暂停,您可以选择忽略文件属性时复制复制的文件属性。哦,它支持多核机器,因此文件之间“并行”复制要快得多,而不是按顺序复制。robocopy可以在MS TechNet上找到。

XCOPY在目标文件末尾加上*来复制目标文件中是否存在的文件 XCOPY在目标文件末尾使用\复制文件夹和内容,无论目标文件中是否存在

另外

RoboForm源DEST文件文件 文件夹的RoboForm源DEST

回到最初的问题:

 xcopy "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\whee.config"

可以用两个命令来完成,例如:

mkdir "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."
xcopy "bin\development\whee.config.example" "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

通过简单地在目标文件的路径上追加“\..”,如果目标目录还不存在,则创建目标目录。在这种情况下

"c:\mybackup\TestConnectionExternal\bin\Debug\"

的父目录是哪个 不存在的目录

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."

至少对于WIN7来说,mkdir并不关心目录是否

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

真的存在。