中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 19:05
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何判断D盘的剩余空间是否大于1G?
楼 主 如何判断D盘的剩余空间是否大于1G? 发表于 2006-12-13 03:12 ·  中国 广东 深圳 电信
初级用户
积分 43
发帖 14
注册 2006-12-09 06:08
UID 73009
性别 男
状态 离线
请问: 如何判断D盘的剩余空间是否大于1G? 谢谢.
2 发表于 2006-12-13 03:34 ·  中国 广东 深圳 电信
初级用户
积分 43
发帖 14
注册 2006-12-09 06:08
UID 73009
性别 男
状态 离线
补充: 要在纯DOS下能够正常运行,谢谢.
3 发表于 2006-12-18 15:25 ·  中国 广东 深圳 电信
新手上路
积分 6
发帖 2
注册 2006-11-18 07:07
UID 70933
性别 男
状态 离线
@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 ]
4 发表于 2006-12-18 22:32 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
UID 60484
状态 离线
楼上这个是在 CMD 下用的,在纯 DOS 下不能用。
纯 DOS 下怎么判断我暂时还没想到。
5 发表于 2006-12-19 02:38 ·  中国 北京 朝阳区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
这个有意思~:)
不知道mp3down兄在一些类似一键恢复盘等工具盘中是否找到了他们是用的什么方法?


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

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

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

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

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
6 发表于 2006-12-19 02:49 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
GMY的一键GHOST,本身不判断保存备份的分区可用空间大小,而是在ghost出错时根据ghost生成的出错文件提供原因。
Windows 一键还原
http://www.yjhy.com
7 发表于 2007-02-09 22:53 ·  中国 广东 广州 珠江宽频
中级用户
★★
积分 210
发帖 85
注册 2007-01-14 12:38
UID 76501
性别 男
来自 广东广州
状态 离线
在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 ]
8 发表于 2007-05-01 19:35 ·  中国 广东 广州 南沙区 电信
初级用户
积分 98
发帖 47
注册 2007-01-28 05:39
UID 77912
性别 男
状态 离线
哦,谢谢
论坛跳转: