中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何判断D盘的剩余空间是否大于1G?
作者:
标题: 如何判断D盘的剩余空间是否大于1G? 上一主题 | 下一主题
mp3down
初级用户





积分 43
发帖 14
注册 2006-12-9
状态 离线
『楼 主』:  如何判断D盘的剩余空间是否大于1G?

请问: 如何判断D盘的剩余空间是否大于1G? 谢谢.

2006-12-13 03:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
mp3down
初级用户





积分 43
发帖 14
注册 2006-12-9
状态 离线
『第 2 楼』:  

补充: 要在纯DOS下能够正常运行,谢谢.

2006-12-13 03:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yusir0710
新手上路





积分 6
发帖 2
注册 2006-11-18
状态 离线
『第 3 楼』:  

@ECHO OFF
setlocal EnableDelayedExpansion
for /f "tokens=3" %%i in ('dir /-c D:\') do set freesize=%%i
set /a freesize=!freesize:~0,-6!/1024>nul
ECHO %freesize%
set /a 基准容量=1
PAUSE
IF %freesize% GTR %基准容量%  goto gtr
ECHO 空间小于%基准容量%G
pause
exit
:gtr
ECHO 空间大于%基准容量%G
pause

[ Last edited by yusir0710 on 2006-12-18 at 02:37 AM ]

2006-12-18 15:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 4 楼』:  

楼上这个是在 CMD 下用的,在纯 DOS 下不能用。
纯 DOS 下怎么判断我暂时还没想到。

2006-12-18 22:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 5 楼』:  

这个有意思~:)
不知道mp3down兄在一些类似一键恢复盘等工具盘中是否找到了他们是用的什么方法?


汇编…36H 号功能调用可以取得空闲磁盘空间,然后用prompt方式操作Debug直接写汇编代码,这样可以不生成临时文件。

(另:上面方法是不调用第三方工具可以实现的)
(  然后继续在Debug里直接比对是否大于1G或是小于1G,调用4CH DOS功能将一个标置数返回给ERRORLEVEL 由批处理判断)
(理论上完全可以实现)

上面只是给兄的一个建议,我不会编~:)

兄可以发贴到论坛的  “DOS开发编程 & 发展交流 (开发室)” 问问直接Debug操作上面原理代码是什么,或许能解燃眉之急~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-19 02:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 6 楼』:  

GMY的一键GHOST,本身不判断保存备份的分区可用空间大小,而是在ghost出错时根据ghost生成的出错文件提供原因。



Windows 一键还原
http://www.yjhy.com
2006-12-19 02:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lizaoyou
中级用户




积分 210
发帖 85
注册 2007-1-14
来自 广东广州
状态 离线
『第 7 楼』:  

在dos下实现较繁,以下是使用批处理扩展strings.com的一个例子:

@echo off
echo.
set v=
dir d:\|find "free">tmp
strings s=read tmp,1
strings/p- s=mid %s%-9
strings/p- s=parse %s%-1
strings/p- s1=parse %s%-1-,
strings/p- s2=parse %s%-2-,
strings/p- s3=parse %s%-3-,
strings v=sub %s1%%s2%%s3%,1024>unl
if "%v%"=="" goto lss
echo DiskFree ">" 1GB
goto end
:lss
echo DiskFree "<" 1GB
:end
del tmp
echo.

[ Last edited by lizaoyou on 2007-2-9 at 09:55 AM ]

2007-2-9 22:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nicesoft
初级用户





积分 98
发帖 47
注册 2007-1-28
状态 离线
『第 8 楼』:  

哦,谢谢

2007-5-1 19:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: