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

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。


当前回答

请登录http://technet.microsoft.com/en-us/library/bb491035.aspx

这里是主要的问题是“……如果Destination不包含现有目录,并且不以反斜杠()结束,则会出现以下消息:…

目标是否指定了文件名 或目标上的目录名 (F =文件,D =目录)?

可以使用/i命令行选项禁止此消息,这将导致xcopy假定目标是一个目录,如果源是多个文件或目录的话。

花了点时间,但我只需要RTFM。

其他回答

XCOPY中有一些未记录的特性。你可以使用:

本\开发\ whee.config选择复制文件”。”“c: \ mybackup \ TestConnectionExternal \ bin \调试\ whee.config *”

我今天刚测试过。: -)

另一种选择是使用目的地通配符。注意,这仅适用于源文件名和目标文件名相同的情况,所以虽然这不能解决OP的特定示例,但我认为值得分享。

例如:

xcopy /y "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\*" 

将创建文件" wheel .config. conf "的副本。在目标目录中,不提示输入文件或目录。

更新:正如@chapluck提到的:

可以将“*”修改为“[newFileName].*”。它保留文件扩展名,但允许重命名。或者更hack:“[newFileName]。[newExt]*"更改扩展名

Xcopy将允许您将单个文件复制到指定的文件夹中,只是不允许您定义目标名称。如果需要目标名称,只需在复制之前重命名即可。

任“bin \开发\ whee.config。“whee.config例子

xcopy /R/Y "bin\development\whee.config" “TestConnectionExternal \ bin \调试\”

我使用

echo f | xcopy /f /y srcfile destfile

为了绕过它。

xcopy src dest /I

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