V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

Windows 下如何复制某个目录下指定后缀名的文件到另一个目录(保持目录结构),并覆盖已存在的文件?

  •  1
     
  •   coolair · 2018-02-25 19:34:05 +08:00 · 2287 次点击
    这是一个创建于 2463 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    2018-02-26 08:49:35 +08:00
    yukiww233
        1
    yukiww233  
       2018-02-25 20:58:32 +08:00
    1.目录下搜索*,按照后缀排序,删除所有非指定后缀文件
    2.覆盖目录
    3.还原回收站所有内容
    des
        2
    des  
       2018-02-25 21:03:51 +08:00 via Android
    xcopy 了解一下?
    zheng462601
        3
    zheng462601  
       2018-02-25 21:07:09 +08:00 via Android
    geelaw
        4
    geelaw  
       2018-02-25 21:26:04 +08:00
    @des 这个方法是不行的,因为 xcopy 会使用 8.3 名,导致意外多复制文件。

    先用 xcopy 建立目录结构,然后用 PowerShell 的 Get-ChildItem 配合 Resolve-Path 和 Copy-Item 来做吧,但是这样比较慢,更快的方法是自己写一个用来 walk 目录树的代码。
    xupefei
        5
    xupefei  
       2018-02-25 21:33:36 +08:00
    robocopy 就是干这个的。
    ```
    robocopy from to *.* /mir /xf *.pdb /xf *.obj
    ```
    上面这样会复制所有文件,除了*.pdb 和 *.obj 。
    /xf 排除
    /ia 包含
    /mir 强制覆盖+删除 to 里存在的、from 里不存在的文件

    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
    geelaw
        6
    geelaw  
       2018-02-25 21:45:39 +08:00 via iPhone
    @xupefei robocopy 也有 8.3 的问题,要做正确的长文件名过滤必须用自定义的程序。
    xml123
        7
    xml123  
       2018-02-25 23:09:49 +08:00 via Android
    powershell 了解一下
    wzxlovesy
        8
    wzxlovesy  
       2018-02-25 23:16:45 +08:00 via Android
    python 了解一下
    WhatIf
        9
    WhatIf  
       2018-02-25 23:21:33 +08:00
    很久以前一直想想写个类似小工具, 然而到现在还没动手写过。
    我的想法倒是和后缀扩展名无关, 主要是指定原目录下的文件,然后拷贝到目的目录下,且保持目录结构(不存在则主动新建)
    loading
        10
    loading  
       2018-02-26 05:18:46 +08:00 via iPhone
    fastcopy 了解一下
    ifaii
        11
    ifaii  
       2018-02-26 08:49:35 +08:00 via iPhone
    我有过这样的需求,写了 Python 脚本,我去找找
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   914 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.