Board logo

标题: [其他] [已解决]批处理如何根据物理内存量大小来选择指令模块? [打印本页]

作者: yuan37    时间: 2012-9-25 16:15     标题: [已解决]批处理如何根据物理内存量大小来选择指令模块?

本帖最后由 yuan37 于 2013-7-10 11:29 编辑

新手求一个:根据物理内存量大小来选择指令模块
  1. @echo off
  2. systeminfo|find "物理内存量"
  3. if "物理内存量">1000 goto one1
  4. if "物理内存量"<1000 goto one2
  5. :one1
  6. copy d:\fast.txt e:\
  7. :one2
  8. del d:\fast.txt
复制代码
这个是个想法,不会编,求帮忙,
边学边进步..
作者: yuan37    时间: 2012-9-25 21:44

怎么没人帮我一下啊,
自 己顶 顶顶  
。。。。。。
我是新新手
各位帮忙啊啊
作者: forfiles    时间: 2012-9-25 22:42

  1. @echo off
  2. for /f "tokens=2 delims=:" %%a in ('systeminfo ^| find "物理内存量") do (
  3.     echo %%a
  4. )
  5. pause
复制代码
你试试这样能否获取到内存大小
我用的英文系统无法帮你测试
作者: yuan37    时间: 2012-9-26 07:07

谢谢3#的帮忙,
经测试,系统提示找不到'systeminfo ^| find "物理内存量"
我主要是想根据内存量的大小来决定下一步的选择
能麻烦再帮忙一下吗   感谢
作者: ray2350    时间: 2012-9-26 09:54

先在自己的计算机上 运行 一下 systeminfo
然后看看 提示内存那块的具体是什么.
比如我的计算机,他就提示  "物理内存总量:"
你找到这个,然后修改成相对应的.
最后,把
forfiles 的那条命令在 加一个 结束的 ',就可以了.
('systeminfo ^| find "物理内存量" ' )
作者: forfiles    时间: 2012-9-26 11:00

回复 4# yuan37


    你运行一下systeminfo命令,把结果发上来看看。
作者: yuan37    时间: 2012-9-26 11:16

本帖最后由 yuan37 于 2012-9-26 12:06 编辑

下面的写法我试了好多次,不知错在哪里??
for /f "tokens=2" %%a in ('systeminfo^|find "物理内存总量"') do if /i %%a GTR 900 % goto one1
)

for /f "tokens=2" %%a in ('systeminfo^|find "物理内存总量"') do if /i %%a LSS 900 % goto one2
)

ne1
copy 11.txt d:\
pause

:one2
copy 22.txt d:\
pause


总内存量小于900MB时 能够转入执行模块2,并复制文件,但大于900MB仍转入执行模块2,不能转入执行模块1。不知错在哪里??
作者: terse    时间: 2012-9-26 11:40

缺失外部命令 systeminfo
作者: yuan37    时间: 2012-9-26 11:50

不会用,如何加,放在哪个位置,请指点。能说得明白一些吗,请修改一下,谢!
我是想根据不同电脑环境,复制一份menu.lst文件,然后加载grub.exe,执行指定的menu.lst.再进入指定的大容量PE或中量级PE 或精简PE
作者: apang    时间: 2012-9-26 12:18

去掉数值中的千分位分割符,再比较。。。
作者: yuan37    时间: 2012-9-26 12:29

去掉了    LSS 900 % goto one2之间的分隔符还是不行,即LSS 900 goto one2
如果把tokens=2改为1,只执行模块one1了,小于900MB的仍执行模块one1,不执行模块2,
作者: terse    时间: 2012-9-26 12:36

回复 10# apang
  1. @echo off
  2. for /f "tokens=2" %%a in ('systeminfo^|find "物理内存总量"') do set "str=%%a"
  3. set "str=%str:,=%"
  4. if %str% gtr 900 (
  5.    copy 11.txt d:\
  6. ) else (copy 22.txt d:\)
  7. pause
复制代码

作者: yuan37    时间: 2012-9-26 12:54

本帖最后由 yuan37 于 2012-9-26 12:57 编辑

哇塞,太厉害了,在3台内存不同的电脑上试验通过,感谢!!
说实在的,我还没全看懂,得仔细分析分析....研究研究....学习学习...
作者: yuan37    时间: 2012-9-26 14:56

回复 12# terse

请教这个 "str=%str:,=%"
是什么含义,能拆解详细分析一下其中的函义吗
作者: ht河豚    时间: 2012-10-1 12:47

论坛搜set
在此简单讲下
%str:,=%相当于查找与替换
通式是%变量名:要查找的字符(就一个)=要替换的字符(就一个)%
如果开变量延迟%号不用变
讲的如有错误,敬请指正
作者: ht河豚    时间: 2012-10-1 12:47

论坛搜set
在此简单讲下
%str:,=%相当于查找与替换
通式是%变量名:要查找的字符(就一个)=要替换的字符(就一个)%
如果开变量延迟%号不用变
讲的如有错误,敬请指正
作者: yuan37    时间: 2012-10-2 08:01

谢谢高手的指点!!
我现在把它运用到USBXP中去了,觉得挺管用。




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