批量增加虚拟内存大小

时间:2020-06-07 11:06:14

标签: batch-file variables virtual-memory

不久前,我遇到了以下线程:[有关虚拟空间的帖子] [1]。

start /wait /b powershell -command "Set-ItemProperty -Path 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management' -Name 'PagingFiles' -Value 'c:\pagefile.sys 1024 1024, d:\pagefile.sys 4096 4096'"

我想知道是否可以将当前安装的RAM大小自动检测并乘以3。

据我所知,虚拟空间的建议最大大小是当前RAM的3倍,是否可以通过单击完成一个批处理?

我假设您必须通过cmd设置变量并将其包含在上面列出的代码中,例如:

start /wait /b powershell -command "Set-ItemProperty -Path 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management' -Name 'PagingFiles' -Value 'c:\pagefile.sys **AUTODETECTCURRENTRAM** **AUTODETECTCURRENTRAM*3**, d:\pagefile.sys 4096 4096'"

我很想听听您对此的看法,您认为如何实现这一目标?它将对提高计算机性能有用吗?

2 个答案:

答案 0 :(得分:2)

可以使用systeminfo来获取总内存,尽管它不是一个静默或快速的过程

@Echo off
for /f "tokens=2* delims=:" %%a in ('systeminfo ^| findstr /I /C:"Total Physical Memory"') do Set "TotalRAM=%%a"
Set "TotalRAM=%TotalRAM: =%"
Set "TotalRAM=%TotalRAM:,=%"
Set "TotalRAM=%TotalRAM:MB=%"

我不知道您的预定目的是否会有所帮助。

要查找当前的最大虚拟内存,请执行以下操作:

for /f "tokens=3* delims=:" %%a in ('systeminfo ^| findstr /I /C:"Virtual Memory: Max Size:"') do Set "maxVRAM=%%a"
Set "maxVRAM=%maxVRAM: =%"
Set "maxVRAM=%maxVRAM:,=%"
Set "maxVRAM=%maxVRAM:MB=%"

答案 1 :(得分:2)

我认为您正在寻找内容如下的批处理文件:

@PowerShell -NoProfile -Command ^
 "$TotalRAM = (GWMI Win32_PhysicalMemory|Measure Capacity -Sum).Sum/1MB;" ^
 "$VirtualM = $TotalRAM * 3;" ^
 "Set-ItemProperty -Path \"Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\" -Name \"PagingFiles\" -Type \"MultiString\" -Value \"C:\pagefile.sys $TotalRAM $VirtualM`r`nD:\pagefile.sys 4096 4096\" -Force"

这应创建一个REG_MULTI_SZ条目,其第一个列在C:的根目录下,其初始大小与您的总物理RAM匹配,并且其最大值与初始设置的三倍匹配。第二个文件在D:的根目录中列出,初始大小和最大大小均为4096 MB。

请注意,此答案不是建议,我认为没有必要假设微软并不比我更好地管理此类事情。