Board logo

标题: [文本处理] 求救,bat怎么接受参数,并获取某行某列的值? [打印本页]

作者: hello163commail    时间: 2014-4-2 14:54     标题: 求救,bat怎么接受参数,并获取某行某列的值?

本帖最后由 hello163commail 于 2014-4-2 15:00 编辑

从外面会传来两个个参数,第一个参数是进程名称是变量,第二个参数是memoryuse
想编写一个脚本,接受外面传来的参数,
1、如果参数是xx进程,memoryuse,
比如在cmd中输入tasklist /fi "imagename eq  进程名称",如果该进程名称是cmd的话,就会输出下面这样
映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
cmd.exe                      26528 Console                    1      3,220 K

这时候我想把第5列的值3220k输出。该怎么写呢

我是这样写的,
for /f "skip=3 tokens=5" %%i in ('tasklist /fi "imagename eq %1"') do echo %%i
作者: 522235677    时间: 2014-4-2 19:44

本帖最后由 522235677 于 2014-4-2 19:47 编辑
  1. for /f "tokens=5,*" %%i in ('tasklist /fi "imagename eq %1"^|find /i "%1"') do echo %%i %%j
复制代码

作者: PowerShell    时间: 2014-4-2 22:27

本帖最后由 PowerShell 于 2014-4-2 22:29 编辑

powershell  比 bat 简单,强大,实用的多
  1. $aaa = (Get-Process cmd).ws
复制代码
获取cmd的使用内存(单位kb),存入变量aaa
powershell 有switch,等。详见版内powershell2.0官方手册。chm
作者: DAIC    时间: 2014-4-2 23:42

回复 3# PowerShell


    你这个没有体现出“从外面会传来两个参数”
作者: PowerShell    时间: 2014-4-3 16:06

传进来一个进程名,传出去一个进程内存占用, ----哪来的【从外面会传来两个参数】

$进程名=cmd
$此进程的内存占用 = (Get-Process $进程名).ws
-------------如何传值-----------
给脚本,函数传值 都用 空格
返回都用return
详见手册。




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