中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一个能判断物理内存大小的批处理
作者:
标题: 求一个能判断物理内存大小的批处理 上一主题 | 下一主题
tclshx
中级用户




积分 249
发帖 64
注册 2005-6-3
状态 离线
『楼 主』:  求一个能判断物理内存大小的批处理

运行时能判断内存的大小,若内存为128以下则运行1项,若内存为150以上则运行2项

[ Last edited by tclshx on 2006-10-29 at 02:41 AM ]

   此帖被 -4 点积分     点击查看详情   
评分人:【 namejm 分数: -4  时间:2006-10-29 01:59


2006-10-29 01:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 2 楼』:  

systeminfo|find "物理内存总量"

2006-10-29 01:48
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 3 楼』:  

  类似的帖子请看:[原创]一句话,整理内存(WMI+VBS+HTA+BAT)

[ Last edited by namejm on 2006-10-29 at 09:32 AM ]



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-10-29 01:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『第 4 楼』:  

for /f "tokens=1-2" %a in ('systeminfo^|find "物理内存总量"') do @echo %b&&set i=%b

if ........

2006-10-29 02:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





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

要真是内存为128MB以下估计运行XP本身都得等疯了,哈哈~:)
估计楼主是做启动盘等用到的内存虚拟盘或是纯DOS要用到的(瞎猜,楼主忘写清楚了只能瞎猜:)



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

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-10-29 02:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tclshx
中级用户




积分 249
发帖 64
注册 2005-6-3
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by redtek at 2006-10-29 02:37 AM:
要真是内存为128MB以下估计运行XP本身都得等疯了,哈哈~:)
估计楼主是做启动盘等用到的内存虚拟盘或是纯DOS要用到的(瞎猜,楼䠮..

用来安装XPE到硬盘,当内存为128M以下时,安装适合该内存的XPE,当内存为150M内上时安装适合该内存的XPE

2006-10-29 02:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





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

MS-DOS 6.22 的 MEM.EXE 只能看到 64MB内存为上限,
(上面是我个人测试结果,不代表正确性或是通用性,也不代表某种暗示和定义)。

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

  Segment               Total        Name         Type
  -------          ----------------  -----------  --------
   00000              1,039    (1K)               Interrupt Vector
   00040                271    (0K)               ROM Communication Area
   00050                527    (1K)               DOS Communication Area
   00070              2,656    (3K)  IO           System Data
                                        CON       System Device Driver
                                        AUX       System Device Driver
                                        PRN       System Device Driver
                                        CLOCK$    System Device Driver
                                        A: - C:   System Device Driver
                                        COM1      System Device Driver
                                        LPT1      System Device Driver
                                        LPT2      System Device Driver
                                        LPT3      System Device Driver
                                        COM2      System Device Driver
                                        COM3      System Device Driver
                                        COM4      System Device Driver
   00116              5,072    (5K)  MSDOS        System Data
   00253              7,616    (7K)  IO           System Data
                      1,104    (1K)     XMSXXXX0  Installed Device=HIMEM   
                      1,488    (1K)               FILES=30
                        256    (0K)               FCBS=4
                        512    (1K)               BUFFERS=15
                      2,288    (2K)               LASTDRIVE=Z
                      1,856    (2K)               STACKS=9,128
   0042F                 80    (0K)  MSDOS        System Program
   00434              2,656    (3K)  COMMAND      Program
   004DA                 80    (0K)  MSDOS        -- Free --
   004DF                272    (0K)  COMMAND      Environment
   004F0                 96    (0K)  MEM          Environment
   004F6                 16    (0K)  MSDOS        -- Free --
   004F7              2,864    (3K)  DOSIDLE      Program
   005AA              4,144    (4K)  DOSKEY       Program
   006AD             88,992   (87K)  MEM          Program
   01C67            536,976  (524K)  MSDOS        -- Free --

Memory Summary:

  Type of Memory       Total   =    Used    +    Free
  ----------------  ----------   ----------   ----------
  Conventional         653,312       27,248      626,064
  Upper                      0            0            0
  Reserved                   0            0            0
  Extended (XMS)    66,060,288       65,536   65,994,752
  ----------------  ----------   ----------   ----------
  Total memory      66,713,600       92,784   66,620,816

  Total under 1 MB     653,312       27,248      626,064

  Memory accessible using Int 15h              0     (0K)
  Largest executable program size        625,952   (611K)
  Largest free upper memory block              0     (0K)
  MS-DOS is resident in the high memory area.

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

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

[ Last edited by redtek on 2006-10-29 at 05:14 AM ]



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

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-10-29 05:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tclshx
中级用户




积分 249
发帖 64
注册 2005-6-3
状态 离线
『第 8 楼』:  

看来只有人工判断后再选择了

2006-10-29 21:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





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

刚安装完 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或是别的原理造成,还没试验。

……
 



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

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-10-29 23:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 10 楼』:  

MEM.EXE有好几个版本,不同的版本在测试内存时有不同的表现



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-10-29 23:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





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

使用 MS-DOS7.10 与 MS-DOS6.22 不同版本的 MEM.EXE 观察内存总数,
然后除以 1024KB 取得MB,最后是 MS-DOS 7.10 可以得出准确的MB数,
而 MS-DOS 6.22只能得到相近的数字(表面上看不太准确,但并不表示有问题或其它)

CONFIG.SYS内容如下:
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH,UMB
FILES=30
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 过瘾:)



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

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-10-29 23:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jenejhon
新手上路





积分 1
发帖 1
注册 2010-5-4
状态 离线
『第 12 楼』:  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

以上只是设想,应该可以实现。

2010-6-10 11:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nylxhu
新手上路





积分 1
发帖 1
注册 2010-8-12
状态 离线
『第 13 楼』:  

我也想知道

2010-8-16 15:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: