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

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。


当前回答

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

例子:

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

其他回答

对于复制大文件,带/J开关的xopy是一个很好的选择。在本例中,简单地用管道F表示文件或D表示目录。此外,还可以将作业保存在数组中以供将来引用。例如:

$MyScriptBlock = {
    Param ($SOURCE, $DESTINATION) 
    'F' | XCOPY $SOURCE $DESTINATION /J/Y 
    #DESTINATION IS FILE, COPY WITHOUT PROMPT IN DIRECT BUFFER MODE
}
JOBS +=START-JOB -SCRIPTBLOCK $MyScriptBlock -ARGUMENTLIST $SOURCE,$DESTIBNATION
$JOBS | WAIT-JOB | REMOVE-JOB

感谢Chand做了一些修改: https://stackoverflow.com/users/3705330/chand

工作周围,使用重命名…并命名它一些神秘的名字,然后重命名它的正确名称

C:

CD“C:\Users\Public\Documents\My Web Sites\AngelFire~Zoe\”

XCopy /D /I /V /Y "C:\Users\Public\Documents\My Web Sites\HostGator ~ ZoeBeans\cop.htm"

纯粹的“警察.htm”“基督-我们的逾越节.htm”

xcopy src dest /I

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

这是比尔的回答。

只是为了让大家明白。

如果你正在将一个文件从一个地方复制到另一个地方,并且你想要创建完整的目录结构,使用以下命令:

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\" 

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

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

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

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

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

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