无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 青青草
打印 上一主题 下一主题

批处理系列6:查找剩余空间最大的磁盘盘符(终稿)

    [复制链接]
1#
发表于 2021-7-12 14:56:03 | 显示全部楼层
dos时代菜鸟 发表于 2021-7-11 11:01
引入一个计算数值位数的 办法。用 wimc 获取分区剩余大小,然后比较出来。
预设数值最大 18位,而 cmd  ...

>而 cmd 只能计算10位数 且要小于 2147483647
准确的说是 32 位有号整数
Int=     -2147483648(80000000) 到 2147483647(7FFFFFFF)


MS OS 从 Vista 就已进入 64 位,
而 CMD Console 只能支持到32 位有号整数,
已是千年老问题,
MS 都不修.






点评

从7的默认cmd到8.1的资管管理器默认cmd和ps,到10的默认ps以及右键默认ps,MS在越来越激进的推荐PS,cmd能不放弃就不错了,我估计绝大部分代码几十年都没动过,更别提改进了,深入研究下,连特么diskpart都一大堆bug  详情 回复 发表于 2021-7-13 13:47
if !bit1! gtr 9 (set free11=!free:~0,-9!) else (set free11=0) 改成 if !bit1! geq 9 (set free11=!free:~0,-9!) else (set free11=0)  详情 回复 发表于 2021-7-13 12:17
回复

使用道具 举报

2#
发表于 2021-7-13 12:29:17 | 显示全部楼层
dos时代菜鸟 发表于 2021-7-13 12:17
if !bit1! gtr 9 (set free11=!free:~0,-9!) else (set free11=0)

改成

于 Windows 7 X64 测试通过.


回复

使用道具 举报

3#
发表于 2021-7-13 14:35:33 | 显示全部楼层
nttwqz 发表于 2021-7-13 13:47
从7的默认cmd到8.1的资管管理器默认cmd和ps,到10的默认ps以及右键默认ps,MS在越来越激进的推荐PS,cmd ...

MS 很早以前就推 PowerShell 取代 BAT,
我会 C# 所以使用 PowerShell 也没什么难度,
PowerShell 是比较强大没错,
但实际上我不常使用 PowerShell.

原因:
1. PowerShell 依赖 .Net Framework,所以很不通用各 OS.
2. PowerShell 在老机器(我老 PC 12 年)第一次运行约 3-5 秒,很慢.
3. Windows PE 通常没有 .Net Framework/PowerShell.
4. .Net Framework 有版本要求,就像 DLL Hell 一样.

通常:
1. 优先使用 BAT.
2. 功能不足/效率差的就找网上现有的第三方 CMD Console 小程序.
3. 没合适的就自写 CMD Console 小程序.
4. 最后才会使用 PowerShell.

至于 UI,
MS UI 真是越做越丑.

个人认为的经典
DOS : DOS 6.22
Win9x : Windows 98 第二版
WinNT : Windows XP/Windows 7(使用中,目前使用 12 年)


回复

使用道具 举报

4#
发表于 2021-7-13 23:03:12 | 显示全部楼层
807979023 发表于 2021-7-13 21:19
转自批处理之家apang大师作品。
加了一句判断,多数代码看不懂,剩余空间的大小显示准确。

于 Windows 7 X64 测试通过.



点评

请问格式和卷名是怎么加的呀!  详情 回复 发表于 2021-7-14 10:07
回复

使用道具 举报

5#
发表于 2021-7-14 20:55:36 | 显示全部楼层
807979023 发表于 2021-7-14 10:06
请问格式和卷名是怎么加的呀!

将 FileSystem,VolumeName 加到 For
回复

使用道具 举报

6#
发表于 2021-7-15 18:28:22 | 显示全部楼层
807979023 发表于 2021-7-15 13:30
加格式和卷名后,xp  win7x32  win7x64 测试通过,win10x64失败。

807979023> 加格式和卷名后,xp  win7x32  win7x64 测试通过,win10x64失败。

我于 Windows XP/Windows 7 X64/Windows 10 X64 都没问题.

=================================================

另外:
我于 Windows XP/Windows 7 X64/Windows 10 X64

1.bat --> 19F 807979023
2.bat --> 12F dos时代菜鸟
3.bat --> 6F 江南一根葱

只有 2.bat --> 12F dos时代菜鸟 由于 Windows XP 不支持 wmic volume,
其它全部都没问题.








点评

已再次更新代码,麻烦你测试一下。 谢谢!  详情 回复 发表于 2021-7-15 20:21
哪里改错了?  详情 回复 发表于 2021-7-15 19:27
回复

使用道具 举报

7#
发表于 2021-7-16 01:41:33 | 显示全部楼层
本帖最后由 plusv 于 2021-7-16 01:47 编辑

我 12 年老 PC,
Windows 7 X64 : 主系统.
Windows XP(在 VMWare 中) : 测试软件.
Windows 10 PE(在 VMWare 中) : 测试软件.
Windows 10 (一台小 NoteBook 中) : 没什么在用,一个月开机一次.

批处理在 Windows XP/Windows 7 X64 测试正常,
下午于 Windows 10 (一台小 NoteBook 中) 测试完 26F 文后就收起来了
试了两个 Windows 10 PE(在 VMWare 中)无 WMIC,所以无法测试.










回复

使用道具 举报

8#
发表于 2021-7-16 01:45:54 | 显示全部楼层
青青草 发表于 2021-7-15 20:21
已再次更新代码,麻烦你测试一下。
谢谢!

我 12 年老 PC,
Windows 7 X64 : 主系统.
Windows XP(在 VMWare 中) : 测试软件.
Windows 10 PE(在 VMWare 中) : 测试软件.
Windows 10 (一台小 NoteBook 中) : 没什么在用,一个月开机一次.

批处理在 Windows XP/Windows 7 X64 测试正常,
下午于 Windows 10 (一台小 NoteBook 中) 测试完 26F 文后就收起来了
试了两个 Windows 10 PE(在 VMWare 中)无 WMIC,所以无法测试.






点评

谢谢! 在我的系统Windows 10和Windows10PE中测试也均正常。  详情 回复 发表于 2021-7-16 10:36
回复

使用道具 举报

9#
发表于 2021-7-16 10:55:01 | 显示全部楼层
本帖最后由 plusv 于 2021-7-16 12:37 编辑
dos时代菜鸟 发表于 2021-7-16 10:43
用 fsutil  获取 盘符列表,分区格式 卷标 分区类型,如果 找不出 分区格式 就认为不是本地盘可 ...

在我 12 年老 PC 测试.

1.fsutil 效率慢一点.
2. D: T: 格式会跑掉,不对齐.
3. 本地硬盘 G: FAT 没列出.

PS:
C:\>fsutil volume diskfree g:
FSUTIL 公用程式需要本机 NTFS 磁碟区。






回复

使用道具 举报

10#
发表于 2021-7-16 21:07:58 | 显示全部楼层
dos时代菜鸟 发表于 2021-7-16 20:33
用 fsutil 肯定不支持 fat ,另外 为了 获取 卷标,分区格式,介质类型 等信息,必然要多次运行 fsutil , ...

于 Windows 7 X64 测试通过.

41F 格式会跑掉,不对齐问题,我已自行修正,
我是比较喜欢 41F,因为刚好能塞满 80x25 CMD Console.

综合全楼,
1. OS 兼容性(Windows XP/Windows 7 X64/Windows 10 X64).
2. 运行效率.
3. 多功能性.

19F 807979023 的批处理是首选.




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-15 23:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表