Board logo

标题: 请教:怎样让VBS检测内存后输出一个返还值让BAT检测, [打印本页]

作者: cjfcjf222     时间: 2007-2-23 07:23    标题: 请教:怎样让VBS检测内存后输出一个返还值让BAT检测,

怎样让VBS检测内存后输出一个返还值让BAT检测,

VBS内存检测如下

strComputer = "localhost"
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")

For Each wbemObject In wbemObjectSet
  WScript.Echo wbemObject.TotalPhysicalMemory
Next

我原来的BAT文件

for /f %%i in ('"cscript //nologo 内存.vbs"') do if %%i LSS 150000 goto 128
for /f %%i in ('"cscript //nologo 内存.vbs"') do if %%i LSS 280000 goto 256
for /f %%i in ('"cscript //nologo 内存.vbs"') do if %%i LSS 400000 goto 384
for /f %%i in ('"cscript //nologo 内存.vbs"') do if %%i LSS 550000 goto 524
for /f %%i in ('"cscript //nologo 内存.vbs"') do if %%i LSS 800000 goto 780
for /f %%i in ('"cscript //nologo 内存.vbs"') do if %%i LSS 1100000 goto 1G
goto x

然而运行太慢,如果是大内存,要运行VBS好多次,是修改BAT还是修改VBS,请教各位了
作者: slore     时间: 2007-2-23 08:24
for /f %%i in ('"cscript //nologo 内存.vbs"') do set TPM=%%i

if %TPM% LSS 150000 goto 128
if %TPM% LSS 150000 goto 128
if %TPM% LSS 280000 goto 256
if %TPM% LSS 400000 goto 384
if %TPM% LSS 550000 goto 524
if %TPM% LSS 800000 goto 780
if %TPM% LSS 1100000 goto 1G
goto x

不知道可以不……
作者: cjfcjf222     时间: 2007-2-23 08:37
谢谢你,我试一下
作者: cjfcjf222     时间: 2007-2-23 08:44
好用了,太谢谢你了,这样就可以只运行一次VBS,我用于自动修改虚拟内存的
作者: zh159     时间: 2007-2-23 09:24
稍稍简化 2 楼的:
for /f %%i in ('"cscript //nologo 内存.vbs"') do (
if %%i LSS 150000 goto 128
if %%i LSS 280000 goto 256
if %%i LSS 400000 goto 384
if %%i LSS 550000 goto 524
if %%i LSS 800000 goto 780
if %%i LSS 1100000 goto 1G
goto x
)
PS:一般不建议用%temp%、%tmp%变量(系统默认为临时文件夹路径变量)
作者: slore     时间: 2007-2-23 10:18
TPM=TotalPhysicalMemory
汗~
作者: zh159     时间: 2007-2-23 15:18


  Quote:
Originally posted by slore at 2007-2-22 21:18:
TPM=TotalPhysicalMemory
汗~

看错-_-|||