标题: [文本处理] 批处理怎样查找出修改过的文件夹? [打印本页]
作者: FU8989 时间: 2010-9-9 23:29 标题: 批处理怎样查找出修改过的文件夹?
在D:\AAA文件夹里有 "A文件夹" "B文件夹" "C文件夹" "D文件夹" ......有多个文件夹 这些文件夹里都是存放文本或者软件的 经常需要复制备份到其它地方 为了不重复复制这些文件夹 只选择修改过的或者容量变化的文件夹进行复制 请问批处理怎样显示出修改过的或者是容量变化的文件夹? 谢谢各位指教
作者: FU8989 时间: 2010-9-9 23:30 标题: 回复 1楼 的帖子
补充 批处理能显示出始终没有变化的文件夹也行 没有变化就是没有添加的 没有删除的 没有修改过的)
作者: zqz0012005 时间: 2010-9-9 23:36
没有你说的那么麻烦,xcopy自己会处理- xcopy /s/e/d/y/c D:\AAA E:\AAA_BAK\
复制代码
作者: FU8989 时间: 2010-9-9 23:54 标题: 回复 3楼 的帖子
师傅 谢谢 能说明一下吗
D:\AAA 文件夹里有几十个G容量呀 全部复制要很久的 我是说只复制变化的文件夹行吗
作者: FU8989 时间: 2010-9-9 23:57 标题: 回复 4楼 的帖子
补充 不一定复制 要求批处理显示出 有几个文件夹变化了
作者: BAT1 时间: 2010-9-9 23:59 标题: 回复 4楼 的帖子
你可以先在其他盘上用几个小文件做个小试验啊。
作者: FU8989 时间: 2010-9-10 00:07 标题: 回复 6楼 的帖子
师傅谢谢 试验也不会达到目的的 因为原来备份好的文件夹里有"A B C " 现在备份前文件夹里删除了A 这样复制过去肯定是有A B C 我的要求是备份好了是BC 能做到吗
作者: BAT1 时间: 2010-9-10 00:14
我有点晕 还是先在群里说清楚吧。
作者: FU8989 时间: 2010-9-10 00:16 标题: 回复 8楼 的帖子
群号多少 谢谢师傅
作者: BAT1 时间: 2010-9-10 00:21 标题: 回复 9楼 的帖子
我在1群
http://bbs.bathome.net/redirect. ... o=lastpost#lastpost
作者: FU8989 时间: 2010-9-10 00:23 标题: 回复 10楼 的帖子
加我行吗 562718523
作者: FU8989 时间: 2010-9-10 00:39 标题: 回复 10楼 的帖子
师傅谢谢 我试了一下 是没有重复复制文件夹 但是不是我的目的 我的目的是 复制后全部更新文件夹 D盘有A B文件夹 复制过去只能有AB文件夹 不管原来E盘里多少个 复制好后 只能有AB文件夹
作者: FU8989 时间: 2010-9-10 06:15 标题: 回复 12楼 的帖子
等待高手解决 ..............
作者: FU8989 时间: 2010-9-10 06:21 标题: 回复 3楼 的帖子
版主大人 我的问题能解决吗 谢谢
我的目的是 第一次复制盘有A B C三个文件夹 复制过去有ABC 文件夹 D盘删掉A文件夹后进行第二次复制过去 复制好后 E盘只能有AB文件夹
作者: pdanniel66 时间: 2010-9-10 06:55
Reference solution:
(1) xxcopy
(2) robocopy
above tools will delete the source directories/files after deleted.
作者: FU8989 时间: 2010-9-10 07:16 标题: 回复 15楼 的帖子
谢谢师傅 本人水平有限 看不懂 能解释一下吗 能不能写完整给我 麻烦你了
作者: leap 时间: 2010-9-10 10:24
其实你只要去下个文件夹同步软件就可以了。。。
批处理实现 没高手来解答
等一年也是一样的
作者: FU8989 时间: 2010-9-10 10:39 标题: 回复 17楼 的帖子
师傅谢谢 能同步到文本里面吗 比如 D:\AAA.TXT有"我们" E:\AAA.TXT有"工作"
以D:\AAA.TXT有"我们"主同步对象 同步后 E:\AAA.TXT有"工作" 里的"工作"会变为"我们"吗 D盘和E盘文本名称都是AAA
作者: zqz0012005 时间: 2010-9-10 23:39
- @echo off
- set "SRC=D:\AAA"
- set "BAK=E:\AAA_BAK"
-
- xcopy /s/e/d/y/c "%SRC%" "%BAK%\"
-
- cd /d "%BAK%"
- for /f "tokens=2 delims=:" %%a in ('xcopy /s/e/h/l * \nul\') do (
- if "%%~$SRC:a"=="" echo del /a/f "%%a"
- )
- pause
复制代码
没有处理 备份中存在而源目录中已删除的文件夹。但文件夹是不占用空间的,勉强可以将就。
正在考虑进一步完善的方法。
作者: FU8989 时间: 2010-9-11 22:32 标题: 回复 19楼 的帖子
谢谢版主大人 .
作者: czjt1234 时间: 2010-9-13 17:14
实在没能理解楼主的意思
作者: FU8989 时间: 2010-9-13 17:38 标题: 回复 21楼 的帖子
谢谢 .
作者: powerbat 时间: 2010-9-16 22:43 标题: 回复 19楼 的帖子
for /? 的帮助中有:
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串
以前一直不明白,原来%~$PATH:I 是这样用的,学习了。
作者: bluewing009 时间: 2010-9-17 00:01
看回帖感觉晕晕的接不上……我的思路(无法判断文件修改,仅是文件增减):用dir列出所有文件名,findstr与前一次的对比不同即可。
作者: FU8989 时间: 2010-9-17 17:13 标题: 回复 24楼 的帖子
谢谢 .
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |