本帖最后由 mxxcgzxxx 于 2011-6-20 22:44 编辑
- @echo off&setlocal enabledelayedexpansion
- ::示例备份目录为g:\ghost
- set 备份目录=g:\ghost
- ::读取指定文件夹的大小,并换算成M
- for /f "tokens=3" %%1 in ('dir %备份目录% /s /-c^|find "个文件"') do set 备份大小=%%1
- set /a 备份大小=%备份大小:~-0,-6%*1
- ::读取各硬盘分区空间剩余大小,排除系统盘符并换算成M,并预留50M磁盘空间供系统使用。提取最后一个适合盘符
- set "备份盘="
- for /f "skip=1 tokens=1,2 delims= " %%1 in ('wmic logicaldisk where DriveType^=3 get caption^,freespace^|find /v "%systemdrive%"') do (
- set n=%%2
- set /a m=!n:~-0,-6!-50
- if %备份大小% lss !m! set 备份盘=%%1
- )
- if "%备份盘%"=="" echo 无适合盘符 &pause>nul &goto :eof
- echo 找到适合盘符,开始备份到%备份盘%中,请稍候
- xcopy %备份目录% %备份盘% /s
- echo 备份结束,按任意键退出
- pause>nul
复制代码 根据自己的需要改一改
由于考虑到GHOST文件比较大,所以多显示了几句话以防中途退出!
另保留50M的空间以防系统死机。 |