标题: [文件操作] 对比两个文件夹里文件,找出其中一个文件夹里缺少的文件并从另一个文件夹里复制过来 [打印本页]
作者: ditto 时间: 2016-11-21 09:29 标题: 对比两个文件夹里文件,找出其中一个文件夹里缺少的文件并从另一个文件夹里复制过来
本帖最后由 ditto 于 2016-11-21 14:00 编辑
两个目录 C:\test 和 D:\test ,都没有子目录
正常情况下,两个目录文件是一样的,但是d:\test偶尔会缺少部分文件,
C:\test下的文件比D:\test文件多,
想把D:\test缺少的 文件 拷贝过来
请问如何实现?- @echo off
- setlocal enabledelayedexpansion
- del tmp.txt
-
- for /r "c:\test" %%f in (*.*) do (
- set file =%%~ff
- echo %%~ff>>tmp.txt
- )
-
- for /f "delims=\,tokens=*" %%i in (c:\tmp.txt) do (
- rem for /f "delims=\" %%i in (tmp.txt) do (
- rem if not exist "d:\test\%%i\%%j" copy "c:\test\%%i\%%j" "d:\test\%%i\%%j"
- echo %%i %%j
- )
-
- pause
复制代码
第2 部分for好像不能正常处理 只能显示c:\
作者: ditto 时间: 2016-11-21 12:26
本帖最后由 pcl_test 于 2016-11-21 12:33 编辑
麻烦哪位帮看看?多谢!想xcopy *.* d:
有很多文件已经存在了,系统会问是否覆盖:
(Yes/No/All)? 现在想对这些已经存在的文件回答全部选N,
怎么样对xcopy命令这个提示,全部自动按N?
作者: ditto 时间: 2016-11-21 16:29
~~~~~~~
作者: CommandBatCmd 时间: 2016-11-21 20:21
- @echo off
- for /f %%I in ('dir /s /b "c:\test\*.*"') do if not exist "d:%%~pnxI" (COPY /B /Y "%%~I" "d:%%~pnxI" /B >NUL)
- pause
复制代码
作者: hlzj88 时间: 2016-11-21 21:28
反正两个文件夹最后的文件都是一样多,不然简单的 xcopy a到b b到a。不必判断。
作者: Spring 时间: 2016-11-22 00:09
少年你可以去搜索一下这些关键字:
1.管道 2.StdIn
要对xcopy不停的按n,如果在批处理,可以在前面加一行给他按足够的n就行- @echo off
- (for /l %%l in (1,1,9999) do @set /p p=n<nul)|^
- xcopy *.* d:
- pause
复制代码
或者写成一行在命令行窗口里面直接运行- (for /l %l in (1,1,9999) do @set /p=n<nul)|xcopy *.* d:
复制代码
作者: codegay 时间: 2016-11-22 04:30
文件件同步 site:appinn.com
https://www.baidu.com/s?ie=utf-8 ... m&oq=文件件同步
作者: terse 时间: 2016-11-22 12:02
回复 1# ditto
你加参数试下 /y
要不试下面命令?- replace "C:\test\*.*" "D:\test" /u
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |