代码之家  ›  专栏  ›  技术社区  ›  Ali

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

  •  0
  • Ali  · 技术社区  · 17 年前

    在Windows环境中,如果只有批处理文件和vbscript可供您使用,您将如何编写此文件?

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

    或者这样说:

    • 在当前文件夹中递归查找某些文件名模式(以名为 ext 在上例中,
    • 将这些文件中的每一个复制到目标文件夹(无论在何处),如在当前文件夹中一样保留目录树结构(或创建任何缺少的中间目录)。
    2 回复  |  直到 17 年前
        1
  •  2
  •   Grant Wagner    17 年前

    这应该有效:

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

    注意 DESTINATION 应该 从未 是要从中复制的目录的子目录,否则 for /r 进入一个递归循环,复制它已经复制的文件,创建越来越长的目录路径(不要问我怎么知道)。

    您可以使用 xcopy /c (即使出现错误也要继续复制)。你也可以看看 xcopy /? 看看有没有其他有价值的东西( /q ,请 /r , /o 等)。

        2
  •  0
  •   mjv    17 年前

    编辑: 我的错,我错过了cp命令中的--parents标志…如下所示的xcopy只会重新创建向下的路径,而不是当前目录“above”的路径。

    我[ 现在 相信 xcopy 将[ 不 ](单独)表演这个把戏。但在格兰特·瓦格纳的“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
    
    推荐文章