本帖最后由 chaoyuang 于 2012-1-10 00:45 编辑
目标:1、win7,彻底删除D:\a下所有小于10M的文件夹;2、清除后计算D盘的剩余容量是否大于E:\a文件夹的大小(E:\a文件夹大小基本在320GB);如果是复制E:\a所有文件及文件夹到在D:\a(同名也直接覆盖,不要提示),复制完成后自动关机;如果容量不足,请提示“D盘容量不足,请清理”显示时间10秒,然后自动关机。
批处理:- @echo off
- setlocal enabledelayedexpansion
- set/a size=1024*1024*10
- for /f "delims=" %%i in ('dir/ad/b d:\a') do (
- set m=0,n=0
- for /f "delims=" %%a in ('dir /-c/w/s %%i') do (
- set /a n+=1
- echo %%a|findstr "所列文件总数" >nul &&set /a m=!n!&&set /a m=!m!+1
- if !n!==!m! for /f "tokens=3" %%b in ('echo %%a') do if %%b lss !size! rd/s/q %%i))
- set m=0,n=0
- for /f "delims=" %%c in ('dir /-c/w/s e:\a') do (
- set /a n+=1
- echo %%a|findstr "所列文件总数" >nul &&set /a m=!n!&&set /a m=!m!+1
- if !n!==!m! for /f "tokens=3" %%d in ('echo %%c') do set easize=%%d)
- set m=0,n=0
- for /f "delims=" %%e in ('dir /-c/w d:\') do (
- set /a n+=1
- echo %%a|findstr "所列文件总数" >nul &&set /a m=!n!&&set /a m=!m!+2
- if !n!==!m! for /f "tokens=3" %%f in ('echo %%e') do set dssize=%%f)
- if !dssize! gtr !easize! (xcopy /e/h/i/q/y e:\a d:\a&&shutdown /f /s /t 3) else (
- echo D盘容量不足,请清理
- ping 127.1 -n 11 >nul
- shutdown /f /s /t 0)
复制代码 运行出错,不知错哪儿请帮忙看看,这段代码是huaqiaochy写的。 |