在中,xcopy有一个奇怪的问题。我不知道这是否是一个愚蠢的问题,因为我只指定一个文件作为源,那么我还应该期待其他任何行为吗?就是这样:
我正在使用xcopy <src> <dest> /s/y。
<src>=C:\sourcefolder\a\b\c\d\something.java和
<dest>=C:\destinationfolder。
现在,xcopy复制文件,但不在C:\destinationfolder中创建目录结构\a\b\c\d\。
我想要的是C:\destinationfolder\a\b\c\d\something.java和
我得到的是C:\destinationfolder\something.java
C:\destinationfolder中运行它,方法是为目标文件夹指定.,中没有任何目标。
我有一个脚本,它迭代地调用xcopy,所以C:\destinationfolder\many java files没有任何目录结构。
是的,我已经做了xcopy /?来查看所有的选项
B. /T也不会创建任何空目录结构
C.我无法转到源文件夹a\b\c\d\并运行xcopy . <dest>
发布于 2011-11-29 12:13:49
更新
我删除了以前关于使用ROBOCOPY的答案。我相信以下使用XCOPY可以做您想做的事情。
假设您的文件夹结构如下:
SOURCE = C:\MyJavaStuff\A\B\C\D\something.java
DEST = C:\MyDestination像这样运行XCOPY:
XCOPY C:\MyJavaStuff\something*.java C:\MyDestination /S /E注意*中的something*.java。
发布于 2011-11-29 15:18:20
问题是,您指定要在源中复制哪个文件。在这种情况下,xcopy不会创建文件夹结构。但是,如果将调用更改为xcopy,则为
xcopy *.java C:\myfolder /s/y
它还将复制.java文件和文件夹结构。您需要指定一个通配符,以便此调用按需要工作。如果您只想复制特定的文件,则必须调整对xopy的调用,例如:
xcopy something.jav* C:\myfolder /s/y
编辑
您可以从另一个命令中获取要复制的文件列表。如果可以在文本文件中输出此文件列表,则可以执行以下操作:
FOR /F "tokens=* delims=," %F in (d:\test\list.txt) DO xcopy src\%~nxF* .\dest /S /Y
此命令所做的工作是读取文本文件(本例中为“d:\test\list.txt”),读取每一行,并对每个文件运行xcopy,在文件名末尾添加一个通配符,以确保它创建文件夹结构。
我在这里假设:
FOR命令中使用它。您还可以使用以下形式:
FOR /F "tokens=* delims=," %F in ('cmd') DO xcopy src\%~nxF* .\dest /S /Y
需要用用于生成要复制的文件列表的命令替换cmd。
请注意,如果在批处理文件中使用此FOR命令,则需要将%F替换为%%F ( %~nxF*替换为%%~nxF*)。
发布于 2011-11-30 09:32:58
我看了一下xcopy开关,您可以使用/T复制目录结构,尽管这不会复制空目录,但是可以用/E覆盖它。
xcopy C:\sourcefolder\a\b\c\d\something.java C:\destinationfolder /T /E /S /Y希望这能有所帮助!
https://stackoverflow.com/questions/8306537
复制相似问题