Board logo

标题: 来个会BAT的帮忙看一下 [打印本页]

作者: yhshiro     时间: 2008-9-4 20:40    标题: 来个会BAT的帮忙看一下

我这有个CMD黑窗口下执行的程序
命令是 pmh -Hide  PID

他需要进程的PID数。。。
能不能帮忙写个批处理 让他自己读取!!??

随便那个进程的PID 像QQ的 或者其他的~

[ Last edited by yhshiro on 2008-9-4 at 09:13 PM ]
作者: HAT     时间: 2008-9-4 20:52
你想读取哪个进程的PID?
另,在这个版块混的人,都会BAT,当然,那些纯粹上来要代码的例外!
作者: huahua0919     时间: 2008-9-4 20:52
你说的是重新还是重启?
需要的是进程PID还是PID共计数量?
作者: yhshiro     时间: 2008-9-4 21:14
有错字。。。现在好啦
作者: yhshiro     时间: 2008-9-4 21:14
我是直接来要代码的 - -
作者: hongewuyan     时间: 2008-9-4 21:19
一般来说,进程名是不变的,PID是可变的
如果经常要用PMH来隐藏某个进程的话,是可以用批处理来自动获取其pid

@echo off
for /f "skip=3 tokens=2" %%i in ('tasklist /fi "imagename eq 你的进程名.exe"') do set id=%%i
pmh -Hide %id%

上面应该可以.
不过当进程名含有空格时,会获取错误
我的考虑是循环筛选那个变量直到获取到 .exe 之后的一个,不过写起来比较啰嗦就不列了.
作者: HAT     时间: 2008-9-4 21:24

@echo off
for /f "tokens=2 delims= " %%a in ('tasklist^|findstr /i "notepad.exe"') do set pid=%%a
echo %pid%
pmh -Hide %pid%

作者: huahua0919     时间: 2008-9-4 21:24
wmic process get handle
作者: yhshiro     时间: 2008-9-4 21:24
谢谢
作者: HAT     时间: 2008-9-4 21:29
wmic可以解决进程名有空格的问题
@echo off
for /f %%a in ('wmic process where "name='notepad.exe'" get handle') do set pid=%%a
pmh -Hide %pid%