排除删除
对比删除
[ Last edited by a9319751 on 2006-12-13 at 08:23 AM ]
@echo off
::如果有多个路径,或者排除多个文件夹:::
::或者排除多个文件,请手工进行设置:::::
::findstr 后面可以跟多个/c:""参数::::::
::如:/c:"game" /c:"qq" /c:"net" ::::::
::中间使用空格间隔:::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::
:: code by zzlike 2006-12-11 CMD@XP::::
::******配置文件开始*****************::
::::::::指定搜索路径::例 e:\ ::::::::::
set "dd=e:\"
::::::::排除文件夹:::::::::::::::::::::
set "dn=game"
::::::::排除文件:::::::::::::::::::::::
set "fn=排除删除文件夹.bat"
::******配置文件结束*****************::
::::::::删除文件夹:::::::::::::::::::::
for /f "delims=" %%i in ('dir /b /ad "%dd%" ^|findstr /i /v /b /e /c:"%dn%"') do attrib -s -h -r -a /s /d "%%i" && rd /s /q "%%i" && echo 已删除目录"%%~fi"
::::::::删除文件:::::::::::::::::::::::
for /f "delims=" %%i in ('dir /b /a-d "%dd%" ^|findstr /i /v /b /e /c:"%fn%"') do del /a /f /q "%%i" && echo 已删除文件"%%~fnxi"
对比删除
@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
[ Last edited by a9319751 on 2006-12-13 at 08:23 AM ]
bat c c++
