[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

你的意思是比如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里本来的?

TOP

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

回复 2# jyswjjgdwtdtj


     对的

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

     移动而非复制

TOP

接上面的举例,如果old的2.txt内容比new里的2.txt内容更新,保留谁?
目的,学习批处理

TOP

回复 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"
复制代码

TOP

  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
复制代码

QQ 20147578

TOP

回复 6# hfxiang


    无法移动子目录的文件

TOP

回复 7# czjt1234


    无法移动子目录的文件

TOP

感觉是楼主未说清楚,可以举个栗子比较明白。

TOP

回复 9# qixiaobin0715


    已更新示例 请查看

TOP

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

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# ashnoer
  1. @echo off
  2. cd /d "%~dp0"
  3. robocopy "Old" "New" /e /xn /xo /move
复制代码
这是移动的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表