Board logo

标题: [系统相关] [已解决]如何用批处理判断剩余空间大小并复制文件? [打印本页]

作者: ny350101    时间: 2011-6-20 16:32     标题: [已解决]如何用批处理判断剩余空间大小并复制文件?

怎样编写批处理,能够自动判断电脑能剩余空间的大小,并自动将xp.gho和xx.exe文件复制剩余空间里,并自动运行xx.exe。
作者: CrLf    时间: 2011-6-20 17:03

看不懂,“并自动将xp.gho和xx.exe文件复制剩余空间里”是什么意思
作者: mxxcgzxxx    时间: 2011-6-20 17:14

本帖最后由 mxxcgzxxx 于 2011-6-20 17:18 编辑

要求写得过于模糊
不过应该楼主是想做自动还原吧
是不是如下:
1、判断各分区大小,找到大于备份文件的空间
2、复制GHO文件及应用软件到指定盘内备用

这样做不如将备份文件及应该文件放在一个目录中,然后程序如下执行
1、判断备份目录的大小
2、查看各磁盘空间大小
3、比较大小找到适合磁盘并排除系统盘,多个磁盘时,最后一个盘优先
4、复制备份目录到适合磁盘
作者: ny350101    时间: 2011-6-20 17:31

3# mxxcgzxxx


你的理解是正确的,可是具体该怎么作呢?
作者: mxxcgzxxx    时间: 2011-6-20 22:27

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

5# mxxcgzxxx


谢谢您。该批处理可以使用。
能否再完善一下:1、我的GHO文件是存在U盘的,而U盘的盘符在不同的机器上是不固定的,能否解决这个问题?2?有个安装程序,程序名为:安装系统.exe。如何在复制完成后自动运行?望指教。
作者: mxxcgzxxx    时间: 2011-6-21 10:10

本帖最后由 mxxcgzxxx 于 2011-6-21 10:16 编辑

论坛里有关于查找U盘的讨论可以找找,
查U盘还是有一些小问题的,比如我这台机就有自带读卡器,也算是U盘接口,所以会出现三四个U盘
可以把这个批处理放在U盘内,把目录位置改成相对目录就比较好用了,也就是把盘符名去掉,
至于运行GHOST最好还是不要在XP系统下,开机DOS下是最好的可以安装一键GHOST来解决,
一键GHOST默认读取目录是~1,默认读取GHO名为 C_PAN.GHO
作者: ny350101    时间: 2011-6-21 11:03

7# mxxcgzxxx


谢谢你的指点,已经完全达到了我的要求。代码的最后加了几句,可以自动运行了。
  1. del %备份盘%\*.bat>nul
  2. echo 备份结束,按任意键开始安装
  3. pause>nul
  4. start %备份盘%\安装系统.exe
复制代码

作者: mxxcgzxxx    时间: 2011-6-21 12:03

8# ny350101

如果要排除某种类型的文件,XCOPY也是可以做到的
参考http://www.bathome.net/thread-12684-1-1.html




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2