标题: VBS怎样把执行结果赋值给cmd执行命令? [打印本页]
作者: jwonderful 时间: 2011-3-8 17:17 标题: VBS怎样把执行结果赋值给cmd执行命令?
-
- Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
- Set ps = objWMIService.ExecQuery("select * from Win32_Process where Name='lsass.exe'")
- For Each ps in ps
- Str = Str & "" & ps.ProcessId
- Next
- WScript.Echo Str
复制代码
我用上面的 获取了lsass.exe的 进程pid
我如何吧获取的pid 赋到一个cmd命令里那 然后在运行??
下面是运行的cmd命令
- set objshell=createobject("wscript.shell")
- objshell.run("%comspec% /k net user 获取到的pid 123456 /add"),vbHide
复制代码
作者: Batcher 时间: 2011-3-8 22:20
- objshell.run("%comspec% /k net user " & Str & " 123456 /add"),vbHide
复制代码
作者: myzam 时间: 2011-3-9 22:58 标题: 回复 1楼 的帖子
这样更简单,不用wmi
在cmd中运行 cscript +下列脚本
-
- set oshell=wscript.createobject("wscript.shell")
- set oexec=oshell.exec("lsass.exe")
- pid=oexec.processID
- wscript.echo pid
- 'ok
复制代码
[ 本帖最后由 myzam 于 2011-3-9 23:05 编辑 ]
作者: jwonderful 时间: 2011-3-16 23:39 标题: 回复 2楼 的帖子
哈哈 太谢谢管理员了 原来这么简单
作者: jwonderful 时间: 2011-3-16 23:40 标题: 回复 3楼 的帖子
myzam 你写的这个貌似有问题。。。。 每次运行获取到的pid数值都是不一样的。。。。
作者: myzam 时间: 2011-3-17 01:03 标题: 回复 5楼 的帖子
要是每次运行取得的数值一样,那才有问题。
作者: CrLf 时间: 2011-3-20 11:42
既然要赋值,直接用bat就好了:- for /f "tokens=." %%a in ('tasklist /nh /fi "imagename eq lsass.exe"') do (
- for /f "delims=exe " %%b in ("%%a") do set pid=%%b
- )
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |