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

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 "C:\Data\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg" "C:\Target Data\\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg\" 

是的,在文件名后面加一个反斜杠,它就不会问你这是一个文件还是目录。因为源文件中只有一个文件,所以它会假定它是一个文件。

其他回答

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

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

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

“xxxxxxxxxxxx”是否指定文件名 或目标上的目录名

(F = file, D = directory)? D

if a File : (echo F)
if a Directory (echo D)

您不能指定它总是一个文件。如果不需要xcopy的其他特性,为什么不使用常规复制呢?

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

另外

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

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

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