批处理文件/ VBScript中的“cp --parents”

时间:2009-09-17 15:28:08

标签: bash vbscript copy batch-file parents

如何在Windows环境中编写只有批处理文件和VBScript的文件?

find -name '*.ext' -exec cp --parents {} destination/ \;

或者这样说:

  • 在当前文件夹中以递归方式查找某些文件名模式(在上例中以ext扩展名结尾),
  • 将每个文件复制到目标文件夹(无论在哪里),保留目录树结构(或创建任何缺少的中间目录),如当前文件夹中所示。

2 个答案:

答案 0 :(得分:2)

这应该有效:

for /r %%a in (*.cmd) do xcopy %%a C:\DESTINATION%%~pa

请注意,DESTINATION 永远不会成为您要复制的目录的子目录,否则for /r将进入递归循环,复制已复制的文件更长和更长的目录路径(不要问我怎么知道)。

使用xcopy /c可以使其更加强大(即使发生错误也可以继续复制)。您可能还需要查看xcopy /?以查看其中是否还有其他有价值的内容(/q/r/o等。

答案 1 :(得分:0)

修改 我的不好,我错过了cp命令中的--parents标志... xcopy如下所示只会重新创建向下的路径,而不是当前目录“上面”的目录。

我[现在]相信xcopy会[[em>不]做这个伎俩。但是格兰特瓦格纳的“for / r”技巧让人感到奇怪。

xcopy [some_path]*.ext [some_otherpath]\final_directory /E  

 (or /S, above, if you don't want empty directories)
 the elements within brackets, some_path and some_otherpath are optional