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

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 src dest /I

REM这假设dest是一个文件夹,如果它不存在,将创建它

我使用

echo f | xcopy /f /y srcfile destfile

为了绕过它。

在目标路径的末尾放置星号(*),跳过D和F的争议。

例子:

xcopy "compressedOutput.xml" ../../执行 脚本/ APIAutomation /图书馆/ rerunlastfailedbuild.xml *”

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

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

不要用xcopy,用copy代替,它没有这个问题。

Xcopy通常用于执行多个文件/文件夹的递归复制,或者需要它提供的验证/提示特性。对于单个文件副本,copy命令工作得很好。