标题: [文本处理] [已解决]批处理怎样传递进程PID? [打印本页]
作者: zcdyj 时间: 2011-5-1 21:08 标题: [已解决]批处理怎样传递进程PID?
本帖最后由 zcdyj 于 2011-5-2 18:29 编辑
这个是获取进程PID的代码
@echo off
wmic process where (name like '%%kk%%') get processid /value
运行这个以后会得到例如ProcessId=985或其他数字
有一个程序需要调用上面的PID
请教如何把上面的PID自动传递到下面的这个批处理中
Set /p num=输入PID:
start Loader.exe %num% Loader.dll
例如我运行了第一个批处理得到结果是ProcessId=880和ProcessId=998和ProcessId=820和ProcessId=966和....
怎样把第一个批处理取得的PID传递到第二个批处理中
即运行批处理结果是
start Loader.exe 880 Loader.dll
start Loader.exe 998 Loader.dll
start Loader.exe 820 Loader.dll
start Loader.exe 966 Loader.dll
start Loader.exe (上面获取的PID) Loader.dll
请教大家这样的批处理应该如何写?先谢谢了
作者: batman 时间: 2011-5-1 21:20
本帖最后由 batman 于 2011-5-1 21:24 编辑
不知道用参数传递?
a.bat中
call b.bat 获取的进程pid
可以每次传递1个,也可以一次将9个以内的pid传递给b.bat
b.bat
start Loader.exe %n Loader.dll
n表示第几个参数
作者: hanyeguxing 时间: 2011-5-1 21:30
本帖最后由 hanyeguxing 于 2011-5-2 13:23 编辑
- @echo off
- for /f "tokens=1* delims==" %%a in ('wmic process where "name like '%%qq%%'" get processid /value') do if not "%%b"=="" call:a %%b
- exit
- :a
- start Loader.exe %1 Loader.dll
复制代码
作者: zcdyj 时间: 2011-5-1 21:55
感谢两位版主的热心帮助 因为有N个PID要放入这个格式 能不能在取得PID的情况下批量执行这个程序?
start Loader.exe PID Loader.dll
作者: hanyeguxing 时间: 2011-5-1 22:27
3楼的代码里,凡是 where "name like '%%qq%%'" 匹配出来的 pid 都是执行 start Loader.exe PID Loader.dll
作者: zcdyj 时间: 2011-5-2 00:21
5# hanyeguxing
版主你好 PID哪里只能是纯数字 我运行了不成功 有没有办法用Set /p num参数运行?
作者: zcdyj 时间: 2011-5-2 00:45
5# hanyeguxing
不知道为什么用这个代码获取的PID值不对 我的进程PID位4184 批处理获取的是41805 导致程序无法运行
作者: hanyeguxing 时间: 2011-5-2 08:32
本帖最后由 hanyeguxing 于 2011-5-2 13:17 编辑
已在3楼更新,处理了回车符的问题
作者: lxzzr 时间: 2011-5-2 12:48
1# zcdyj
get方法不要加/value参数
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |