中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 22:59
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 求一个能判断物理内存大小的批处理
可打印版本  2,583 / 12
第1楼 tclshx 发表于 2006-10-29 01:45
中级用户 发帖 64 积分 249
求一个能判断物理内存大小的批处理
运行时能判断内存的大小,若内存为128以下则运行1项,若内存为150以上则运行2项

[ Last edited by tclshx on 2006-10-29 at 02:41 AM ]
第2楼 vkill 发表于 2006-10-29 01:48
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
systeminfo|find "物理内存总量"
第3楼 namejm 发表于 2006-10-29 01:58
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  类似的帖子请看:一句话,整理内存(WMI+VBS+HTA+BAT)

[ Last edited by namejm on 2006-10-29 at 09:32 AM ]
第4楼 zerocq 发表于 2006-10-29 02:09
中级用户 发帖 196 积分 458
for /f "tokens=1-2" %a in ('systeminfo^|find "物理内存总量"') do @echo %b&&set i=%b

if ........
第5楼 redtek 发表于 2006-10-29 02:37
金牌会员 发帖 1,147 积分 2,902
要真是内存为128MB以下估计运行XP本身都得等疯了,哈哈~:)
估计楼主是做启动盘等用到的内存虚拟盘或是纯DOS要用到的(瞎猜,楼主忘写清楚了只能瞎猜:)
第6楼 tclshx 发表于 2006-10-29 02:44
中级用户 发帖 64 积分 249
Originally posted by redtek at 2006-10-29 02:37 AM:
要真是内存为128MB以下估计运行XP本身都得等疯了,哈哈~:)
估计楼主是做启动盘等用到的内存虚拟盘或是纯DOS要用到的(瞎猜,楼䠮..

用来安装XPE到硬盘,当内存为128M以下时,安装适合该内存的XPE,当内存为150M内上时安装适合该内存的XPE
第7楼 redtek 发表于 2006-10-29 05:12
金牌会员 发帖 1,147 积分 2,902
MS-DOS 6.22 的 MEM.EXE 只能看到 64MB内存为上限,
(上面是我个人测试结果,不代表正确性或是通用性,也不代表某种暗示和定义)。

在VMware 虚拟机上给 MS-DOS 6.22 虚拟系统分配512MB和其它大小内存,
发现mem.exe只能看到64MB以下内存,再大的内容看不到。




(不知道是否有其它工具可以看到)
(或用Turbo C等编一个,或是汇编也可以得到物理内存总量--我不会)

(你可以参考一下别的带有分配不同大小虚拟盘的启动盘上所用的方法或什么工具)

[ Last edited by redtek on 2006-10-29 at 05:14 AM ]
第8楼 tclshx 发表于 2006-10-29 21:54
中级用户 发帖 64 积分 249
看来只有人工判断后再选择了
第9楼 redtek 发表于 2006-10-29 23:20
金牌会员 发帖 1,147 积分 2,902
刚安装完 MS-DOS7.10,
在这个版本的 MS-DOS 7.10上可以MEM.EXE可以看到实际内容大小。

(试验给虚拟机里的 MS-DOS7.10分配了256MB大小的内存,看到了~:)

(后,将MS-DOS7.10的MEM.EXE拷贝到了MS-DOS6.22上,
 并设置虚拟机内存为256MB,结果看到的还是 64MB内存。给MS-DOS6.22再多内存也看不到了)

但并不代表MS-DOS6.22就真的看不到实际内存大小,
只是(可能)由于内存管理驱动himem.sys或是别的原理造成,还没试验。

……
 
第10楼 不得不爱 发表于 2006-10-29 23:27
超级版主 发帖 2,044 积分 5,310 来自 四川南充
MEM.EXE有好几个版本,不同的版本在测试内存时有不同的表现
第11楼 redtek 发表于 2006-10-29 23:54
金牌会员 发帖 1,147 积分 2,902
使用 MS-DOS7.10 与 MS-DOS6.22 不同版本的 MEM.EXE 观察内存总数,
然后除以 1024KB 取得MB,最后是 MS-DOS 7.10 可以得出准确的MB数,
而 MS-DOS 6.22只能得到相近的数字(表面上看不太准确,但并不表示有问题或其它)

CONFIG.SYS内容如下:


MS-DOS 6.22  HIMEM.SYS 大小:19136
MS-DOS 7.10 HIMEM.SYS 大小:33191


) 在MS-DOS 6.22 版本下,加载 MS-DOS 7.10版本中的 HIMEM.SYS,
  还必须使用 MS-DOS 7.10 版的 MEM.EXE 才可以看到准确的大小64MB的内存。
  而此时如果使用 MS-DOS 6.22 自带的 MEM.EXE 仍看不到大于 64MB的内存。
  
) 但是,在 MS-DOS 6.22 版本下,如果加载的是自带的(非MS-DOS 7.10)版的 HIMEM.SYS,
  那么,用任何一版(MS-DOS 6.22 或是 MS-DOS 7.10)的 MEM.EXE都不能看到大于64MB 的内存。

) 以上实验暂时确定为 himem.sys 与 mem.exe 版本问题。
  MS-DOS 6.22版的himem.sys为94年版,1995年的32MB内存条(组合)中国售价约 9000元人民币!
  要是合成现在内存价格1G约为 2万元,哈哈……(假设)
  那个时代没有这么大的内存,所以那个年代的himem.sys用不着判断再大的内存。

) 还是 MS-DOS 7.10 过瘾:)
第12楼 jenejhon 发表于 2010-06-10 11:33
新手上路 发帖 1 积分 1
dos下利用MEM和DD获得内存大小(设想)
在DOS下,建立TESTMEM.bat运行MEM >MEM.TXT
利用DD截取内存总数写到批处理中echomem.bat。以下是TESTMEM.bat内容:
testmem.bat:
@echo off
mem >mem.txt
dd ......

echomem.bat:
@echo off
set nAllMem=9999999
echo "物理内存大小是: %nAllMEM% KB

以上只是设想,应该可以实现。
第13楼 nylxhu 发表于 2010-08-16 15:54
新手上路 发帖 1 积分 1
我也想知道
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023