Board logo

标题: [文件操作] 【已解决】批处理Move命令 移动文件和文件夹的问题 [打印本页]

作者: ashnoer    时间: 2023-5-14 03:05     标题: 【已解决】批处理Move命令 移动文件和文件夹的问题

本帖最后由 ashnoer 于 2023-5-14 18:02 编辑

解决方案:
  1. @echo off
  2. cd /d "%~dp0"
  3. robocopy "Old" "New" /e /xn /xo /move
复制代码
感谢 Batcher 大佬 !

=======================原文

现有两个文件文件夹 New Old

其中 New 文件夹的文件是在 Old 文件夹的基础上进行更新

现在需要把 Old 内的所有文件以及文件夹移动【并非复制】到 New 文件夹内

并且跳过名称相同的文件

move貌似只能移动指定的文件夹 或 移动指定文件夹内的文件而不能移动子文件夹内的文件?

在移动文件时又如何在不触发提示的情况下默认不覆盖?


    需求如下:
    在不改变目录结构的情况下
    将 Old 下所有的 目录、子目录、文件 全部移动到 New ,跳过同名文件


    例如                                                 合并为
    New                        Old                        New
       aaa                        aaa                        aaa
          1.txt                      2.txt                         1.txt
          2.txt                      3.txt                         2.txt
       bbb                        bbb                             3.txt
          3.txt                       4.txt                   bbb
          4.txt                       5.txt                       3.txt
                                                                      4.txt
                                                                      5.txt
作者: jyswjjgdwtdtj    时间: 2023-5-14 08:50

你的意思是比如new和old里都有子文件夹f1,然后f1里都有子文件夹f2,然后new里的f2有子文件1.txt,2.txt,old里有2.txt,3.txt
经过你想要的操作
new里的f1里的f2就有1.txt 2.txt 3.txt
且这个2.txt是new里本来的?
作者: ashnoer    时间: 2023-5-14 08:58

本帖最后由 ashnoer 于 2023-5-14 09:01 编辑

回复 2# jyswjjgdwtdtj


     对的

     就是把 Old 里的所有文件移动到 New 里面 、跳过同名文件  

     移动而非复制
作者: hlzj88    时间: 2023-5-14 09:44

接上面的举例,如果old的2.txt内容比new里的2.txt内容更新,保留谁?
作者: hfxiang    时间: 2023-5-14 09:59

回复 1# ashnoer
  1. @echo off & cd /d "%~dp0"
  2. for /f "tokens=*delims=" %%a in ('dir .\old /b') do @if not exist ".\new\%%a" @move /y ".\old\%%a" ".\new\%%a"
复制代码

作者: czjt1234    时间: 2023-5-14 10:07

  1. @echo off
  2. for /f "delims=" %%i in ('dir /a/b new\*.*') do (
  3.    if not exist "old\%%~nxi" move "new\%%~nxi" "old\%%~nxi"
  4. )
  5. pause
  6. exit
复制代码

作者: ashnoer    时间: 2023-5-14 10:17

回复 6# hfxiang


    无法移动子目录的文件
作者: ashnoer    时间: 2023-5-14 10:17

回复 7# czjt1234


    无法移动子目录的文件
作者: qixiaobin0715    时间: 2023-5-14 10:21

感觉是楼主未说清楚,可以举个栗子比较明白。
作者: ashnoer    时间: 2023-5-14 10:40

回复 9# qixiaobin0715


    已更新示例 请查看
作者: Batcher    时间: 2023-5-14 11:08

回复 1# ashnoer
  1. @echo off
  2. cd /d "%~dp0"
  3. robocopy "Old" "New" /e /xn /xo
复制代码
这是复制的
作者: Batcher    时间: 2023-5-14 11:13

回复 1# ashnoer
  1. @echo off
  2. cd /d "%~dp0"
  3. robocopy "Old" "New" /e /xn /xo /move
复制代码
这是移动的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2