中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-26 01:26
47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何显示磁盘的剩余空间?
可打印版本  20,784 / 46
第31楼 willsort 发表于 2006-06-11 18:54
元老会员 发帖 1,512 积分 4,432
Re namejm:

可惜没有Win2000的环境,无法测试,对症的解法需要你详细说明错误信息。

目前,我能想到的办法就是取消find,在CMD@WinXP下测试有效:

第32楼 namejm 发表于 2006-06-11 20:08
荣誉版主 发帖 1,737 积分 5,226 来自 成都
通过截取字符的方法排版出现错误
  通过截取字符最后几位的方法右对齐显示磁盘卷标名和剩余空间的时候,发生了如下的错误格式(当卷标名全为英文的时候能正确排版),请问是何原因?
  代码和图片如下

  

[ Last edited by willsort on 2006-6-12 at 19:31 ]

附件
error1.jpg (37.38 KiB)
第33楼 willsort 发表于 2006-06-11 20:23
元老会员 发帖 1,512 积分 4,432
Re namejm:

因为NT内部采用Unicode编码,而Unicode字符有一个特点——“不同显示宽度的英文和中文字符,有相同的字节长度和字符长度”。

这个问题解决起来比较困难。替代的方案无非就是保证不出现中文(也即不显示卷标),或者依照我原来的建议不使用边框并将卷标列移到后方。
第34楼 namejm 发表于 2006-06-11 21:03
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  真是鱼和熊掌不可兼得啊:(
第35楼 willsort 发表于 2006-06-12 19:27
元老会员 发帖 1,512 积分 4,432
Re namejm:

现在,想到一些方案来对齐汉字或其它多字节字符了。

如果可以确保显示的变量串只有汉字,则补齐变量时可以用空白的汉字(比如全角状态下的空格)来代替普通的空格;

否则,需要判断变量串的显示宽度,在缺省的中文环境下,可以理解为判断本地编码(ANSI)的变量串的字节长度,关于此点,现在的方案是生成临时文件(缺省采用ANSI编码),根据文件长度确定变量长度。代码如下

但是,它仍然无法对NTFS超长的卷标进行对齐。所以我仍然建议,不要强求去采用某些特殊的字符排列方式。可以代替的方案有很多,比如,卷标可以写在前面,而盘符将加上一对圆括弧紧跟在卷标后,如我的电脑中显示的那样。

而在边框中显示变化字符串,将始终潜伏着边框不对齐的隐患,而且它也影响了代码本身的阅读性,而不使用边框用其它方法也可以取得良好的排版效果。

另外,图片附件体积过大,只留一个就以示意;另外,CMD窗口的截图采用16的GIF体积会小很多,效果也不会太失真。

DrvSpace.cmd


[ Last edited by willsort on 2006-6-12 at 19:34 ]
第36楼 namejm 发表于 2006-06-12 23:13
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  感谢willsort,已经将代码稍加修改放进我的文件备份器脚本中去了。尽管还有潜在的风险,但是发出来之后,就会有更多的人来想办法,总比什么也不做强一点。

  刚发了几张图片,没注意到图片格式和颜色质量对图片大小的影响,以后我会注意发那些尽可能小而又比较清晰的图片上来。
第37楼 willsort 发表于 2006-06-14 16:51
元老会员 发帖 1,512 积分 4,432

───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:合并主题 {21183}通过截取字符的方法排版出现错误 -> 32~36 楼
说明:操作主题与本主题存在上下文的直接联系
───────────────── 版务记录 ─────────────────
第38楼 mobo 发表于 2006-09-19 08:41
初级用户 发帖 30 积分 73
查看logicaldisk[逻辑盘]摘要信息
::查看logicaldisk[逻辑盘]摘要信息.bat:
::---------BY MOBO in 2006-09-18
wmic logicaldisk list brief /format:hform >logicaldisk.htm
第39楼 electronixtar 发表于 2006-09-19 08:56
铂金会员 发帖 2,672 积分 7,493
寒~~现在动不动都WMIC的~~
第40楼 namejm 发表于 2006-09-19 09:40
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Originally posted by electronixtar at 2006-9-19 08:56:
寒~~现在动不动都WMIC的~~

  呵呵,看来electronixtar对WMIC比较了解,想请教一下WMIC和CMD各有什么优劣。
第41楼 electronixtar 发表于 2006-09-19 10:03
铂金会员 发帖 2,672 积分 7,493
cmd亲近bat而wmic亲近wbem,没了~~

其实了解也不多~~听说过而已~~BagPipe是专家,不过又不发帖~~

其实Windows越来越有UNIX的味道了~~

[ Last edited by electronixtar on 2006-9-19 at 10:07 ]
第42楼 zouzhxi 发表于 2006-09-22 07:56
中级用户 发帖 177 积分 430 来自 广东深圳
Originally posted by willsort at 2006-6-11 18:54:
Re namejm:

可惜没有Win2000的环境,无法测试,对症的解法需要你详细说明错误信息。

目前,我能想到的办法就是取消find,在CMD@WinXP下测试栮..





如果是要显示硬盘总大小呢 怎么写....
第43楼 HUNRYBECKY 发表于 2007-01-21 10:26
银牌会员 发帖 442 积分 1,179
如果DOS支持浮点运算的话,那么获取磁盘空间还可以使用如下方法:

可惜的是提示错误,原因是不支持浮点运算。
第44楼 HUNRYBECKY 发表于 2007-01-21 10:43
银牌会员 发帖 442 积分 1,179
刚才研究了下,修改了上面的代码就可以实现变相的浮点预算了。
第45楼 HUNRYBECKY 发表于 2007-01-21 10:47
银牌会员 发帖 442 积分 1,179
在修改下,发现FOR命令居然支持调用变量作为SET集,这下不用产生临时文件了。



不好意思,对FOR不是很熟悉,一直用不好

[ Last edited by HUNRYBECKY on 2007-1-21 at 11:06 AM ]
上一页  1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023