标题: 都进来看看吧!批处理文件对比相关请教!
[打印本页]
作者: liuwushu
时间: 2006-12-20 11:07
标题: 都进来看看吧!批处理文件对比相关请教!
问个关于批处理的问题,怎样用批处理实现 文件夹1 对比 文件夹2,删除 文件夹1 多余文件。
万分感谢赐教!
作者: a9319751
时间: 2006-12-20 23:07
@echo off && setlocal enabledelayedexpansion
::主要用于全盘远程对比更新:::::::::::::
::如果本地测试请自行修改:::::::::::::::
::本地对比更新已通过测试:::::::::::::::
::远程对比更新未测试:::::::::::::::::::
::此代码效率不高,只为演示:::::::::::::
:: code by zzlike 2006-12-11 CMD@XP::::
:::::::::::::::::::::::::::::::::::::::
::******配置文件开始*****************::
::::::::源目录:::::::::::::::::::::::::
set sd=\\192.168.0.14\d\
::::::::目标盘:::::::::::::::::::::::::
set dd=d:\
::******配置文件结束*****************::
::::::::映射网络路径:::::::::::::::::::
net use x: %sd%
::::::::生成文件列表:::::::::::::::::::
echo. > sd.txt
echo. > dd.txt
for /r "x:\" %%i in (*) do echo %%~pnxi >> sd.txt
for /r "%dd%" %%i in (*) do echo %%~pnxi >> dd.txt
::::::::对比文件列表并删除多余文件:::::
for /f "tokens=*" %%i in (dd.txt) do (
find "%%i" sd.txt || del /a /f /q "%dd%%%i"
)
::::::::删除空文件夹:::::::::::::::::::
set num=0
for /f "delims=" %%i in ('dir /ad /b /s "%dd%"') do (
for /f %%j in ('dir /a "%%i"') do set /a num+=1
if !num! lss 8 attrib -s -h -r -a "%%i" && rd /s /q "%%i"
set num=0
)
::::::::更新文件:::::::::::::::::::::::
xcopy /d /e /i /y /c /q /h /r /k "x:\*" "%dd%*"
::::::::清理临时文件并断开网络路径:::::
net use x: /delete /y
del /a /f /q sd.txt
del /a /f /q dd.txt
作者: vkill
时间: 2006-12-21 09:46
好象不需要生成临时文件就可以
作者: liuwushu
时间: 2006-12-21 15:41
谢谢
作者: liuwushu
时间: 2006-12-21 15:42
谢谢