Board logo

标题: [系统相关] [已解决]批处理怎样设置虚拟内存? [打印本页]

作者: mir78    时间: 2008-3-23 21:47     标题: [已解决]批处理怎样设置虚拟内存?

  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倍,应该怎么改呢,请教各位高手,小弟在此谢谢!
作者: 随风    时间: 2008-3-23 22:19

你的问题应该是计算问题,
设置虚拟内存,
最小为物理内存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
复制代码

作者: mir78    时间: 2008-3-23 22:38

ok,very thank u
作者: lianji    时间: 2009-4-22 00:14

借问:
物理内存≤512设为最大最小为3倍
物理内存>512为系统默认设置不调整
该如何写???????
作者: lianji    时间: 2009-4-25 00:24

希望高手能帮一下~~~~
作者: yfcool    时间: 2009-7-11 16:10

我想问问,我把代码存成bat执行了!怎么虚拟内存是2-4呢?集成显卡不行吗
作者: terse    时间: 2009-7-11 16:59

结果值你们没有”,“吗  我这里有的  所以计算前应该先去掉
作者: lxzzr    时间: 2009-7-11 19:06

第一种方法是修改注册表:
例子:设置虚拟内存到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
复制代码

作者: yfcool    时间: 2009-7-13 18:15

1,024 * 3
为什么批处理是24*3计算的呢???
这样批处理就没有实际用处了
作者: keen    时间: 2009-7-13 19:31     标题: 回复 9楼 的帖子

把1,024中的逗号去掉
作者: yfcool    时间: 2009-7-14 14:37

我还是把代码发出来,请各位测试一下!至于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
作者: Batcher    时间: 2009-7-14 15:49     标题: 回复 11楼 的帖子

set命令的帮助里面有一段关于字符串替换的讲解,你可以先自己看看。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2