找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32482|回复: 11

[系统相关] [已解决]批处理怎样设置虚拟内存?

[复制链接]
发表于 2008-3-23 21:47:54 | 显示全部楼层 |阅读模式
  1. @echo off
  2. for /f "tokens=2 delims= " %%i in ('systeminfo ^| find "物理内存总量"') do (
  3. set m=%%i
  4. )
  5. set/a min=2*%m%
  6. set/a max=2*%min%
  7. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "d:\pagefile.sys %min% %max%" /f
  8. pause>nul
  9. pause >nul
复制代码
这行代码调整了虚拟内存大小,我的内存是512MB,它自动设置为最小1022,最大2044  

我想从上面的代码中改变成自己想要的:

最小为物理内存的1.5倍,最大为3倍,应该怎么改呢,请教各位高手,小弟在此谢谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2008-3-23 22:19:47 | 显示全部楼层
你的问题应该是计算问题,
设置虚拟内存,
最小为物理内存1.5倍,最大为物理内存的3倍
:
  1. @echo off
  2. for /f "tokens=2 delims= " %%i in ('systeminfo ^| find "物理内存总量"') do (
  3.   set /a m=%%i/2+%%i,max=%%i*3
  4. )
  5. set var="HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management"
  6. reg add %var% /v PagingFiles /t REG_MULTI_SZ /d "d:\pagefile.sys %m% %max%" /f
  7. pause>nul
复制代码
 楼主| 发表于 2008-3-23 22:38:25 | 显示全部楼层
ok,very thank u
发表于 2009-4-22 00:14:45 | 显示全部楼层
借问:
物理内存≤512设为最大最小为3倍
物理内存>512为系统默认设置不调整
该如何写???????
发表于 2009-4-25 00:24:33 | 显示全部楼层
希望高手能帮一下~~~~
发表于 2009-7-11 16:10:30 | 显示全部楼层
我想问问,我把代码存成bat执行了!怎么虚拟内存是2-4呢?集成显卡不行吗
发表于 2009-7-11 16:59:27 | 显示全部楼层
结果值你们没有”,“吗  我这里有的  所以计算前应该先去掉
发表于 2009-7-11 19:06:32 | 显示全部楼层
第一种方法是修改注册表:
例子:设置虚拟内存到D盘,大小为1024-1024
  1. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "D:\\pagefile.sys 1024 1024" /f
复制代码


第二种方法是利用WMIC修改:
例子:设置虚拟内存到D盘,大小为1024-1024,并且删除C盘pagefile.sys'
  1. wmic PageFileSet create name="D:\\pagefile.sys",InitialSize="1024",MaximumSize="1024"
  2. wmic PageFileSet where "name='C:\\pagefile.sys'" delete
复制代码
发表于 2009-7-13 18:15:45 | 显示全部楼层
1,024 * 3
为什么批处理是24*3计算的呢???
这样批处理就没有实际用处了
发表于 2009-7-13 19:31:54 | 显示全部楼层

回复 9楼 的帖子

把1,024中的逗号去掉
发表于 2009-7-14 14:37:41 | 显示全部楼层
我还是把代码发出来,请各位测试一下!至于1,024把,去掉,想法是好的!怎么实现呢?
set n=!n:,=!
for /f "tokens=2 delims= " %%i in ('systeminfo ^| find "物理内存总量"') do (
  set n=%%i
)
set /a m=(%n%*3/2)
set /a max=(%n%*3)
set var="HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management"
reg add %var% /v PagingFiles /t REG_MULTI_SZ /d "d:\pagefile.sys %m% %max%" /f
pause>nul
发表于 2009-7-14 15:49:18 | 显示全部楼层

回复 11楼 的帖子

set命令的帮助里面有一段关于字符串替换的讲解,你可以先自己看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-31 21:54

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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