【已解决】求脚本(bat、vbs、wcs 都行):PE下 检测新增同名进程,谢谢
本帖最后由 yyz2191958 于 2023-10-6 15:58 编辑问题解决了:(附件:排版助手(!检测进程版-通用).rar很好)
::作用:1.【启动-排版助手.exe】2.【无“排版助手.exe”进程退出。大于1个进程,结束“排版助手.exe”进程】
@echo off
::【隐藏批处理窗口】
CMDOW.EXE @ /HID
::***********【下面写要运行的代码】***************
start "" "%~dp0排版助手.exe"
::************************************************
::【检测(是否在PE中运行),是向下运行,否跳到:Q】
if not exist "X:\windows\" goto :Q
::************************************************
:A
::【检"排版助手.exe"进程,无(等于小于0)往下,有(大于0)到:B】
for /f %%a in ('taskn.exe 排版助手.exe') do if %%a gtr 0 goto :B
exit
:B
::************************************************
::【(等于小于1个进程,往下)(大于1个进程,跳到 :C)】
for /f %%a in ('taskn.exe 排版助手.exe') do if %%a gtr 1 goto :C
ping -n 3 127.0.0.1 >nul
goto :A
:C
X:\Windows\System32\Pecmd.exe kill 排版助手.exe
:Q
exit
*******************************************
原来的问题:
求脚本(bat、vbs、wcs 都行):PE下检测新增同名进程,谢谢
***************************************************
一、需要检测的进程:Notepad2.exe
二、需求:
1.原来可能有一个或者两个,也可能是三个Notepad2.exe进程
2.在1的条件下,如果再增加一个Notepad2.exe进程,跳转到:A(结束Notepad2.exe进程,并退出)
3.在1的条件下,如果没有新增Notepad2.exe进程,则过2秒继续检测(循环)
*************************************************************
附之前的一个bat(正常系统中能够使用,PE下 不行【黑框,检测不到新增】):
@echo off
for /f %%a in ('tasklist ^| find/c /i "Notepad2.exe"') do (
set "ProcNum=%%a"
)
:B
cls
for /f %%a in ('tasklist ^| find/c/i "Notepad2.exe"') do (
if %%a gtr %ProcNum% (
goto :A
)
)
ping -n 3 127.0.0.1 >nul
goto :B
:A
echo Hello
pause
这是要干嘛? 可能是PE里没有find.exe,改改判断语句吧:
setlocal enabledelayedexpansion
for /f %%a in ('tasklist ') do (
if %%a==Notepad2.exe set /a num=!num! + 1
)
echo %num% 9zhmke 发表于 2023-9-26 08:44
可能是PE里没有find.exe,改改判断语句吧:
我试一试先 谢谢 9zhmke 发表于 2023-9-26 08:44
可能是PE里没有find.exe,改改判断语句吧:
ECHO 处于关闭状态。 下面的也不行:
@echo off
setlocal enabledelayedexpansion
:B
for /f %%a in ('tasklist ') do (
if %%a==Notepad2.exe set /a num=!num! + 1
goto :A )
ping -n 2 127.0.0.1 >nul
goto :B
:A
echo %num%
pause>nul 2>nul 应该是支持tasklist的PE少,find.exe 还好解决 学习 BEIKING 发表于 2023-9-26 09:37
应该是支持tasklist的PE少,find.exe 还好解决
find.exe——PE 里面有
tasklist——我从正常系统中复制 到 PE中了 谢谢 nttwqz 发表于 2023-9-26 08:33
这是要干嘛?
检测的进程:Notepad2.exe————是假设
这个功能我需要 本帖最后由 9zhmke 于 2023-9-26 15:14 编辑
yyz2191958 发表于 2023-9-26 08:51
ECHO 处于关闭状态。
加一行赋值:
setlocal enabledelayedexpansion
set num=0
for /f %%a in ('tasklist ') do (
if %%a==Notepad2.exe set /a num=!num! + 1
)
echo %num%
pause
另外,请注意你的文件名Notepad2.exe中的字母大小写必须相符 9zhmke 发表于 2023-9-26 15:10
加一行赋值:
我试一试先 谢谢 9zhmke 发表于 2023-9-26 15:10
加一行赋值:
另外,请注意你的文件名Notepad2.exe中的字母大小写必须相符
已经有了3个 Notepad2.exe进程
运行代码以后是: 先去cmd手工运行tasklist看有没列出来 本帖最后由 yyz2191958 于 2023-9-26 15:37 编辑
szwp 发表于 2023-9-26 15:27
先去cmd手工运行tasklist看有没列出来
cmd手工运行tasklist————是不是下图一样运行? 和系统下运行的结果比较一下,可以多换几个pe试试 szwp 发表于 2023-9-26 15:34
和系统下运行的结果比较一下,可以多换几个pe试试
不想换 pe yyz2191958 发表于 2023-9-26 16:03
不想换 pe
先得知道tasklist的正确结果是什么 szwp 发表于 2023-9-26 16:33
先得知道tasklist的正确结果是什么
好的 我去正常系统试一试 yyz2191958 发表于 2023-9-26 15:32
cmd手工运行tasklist————是不是下图一样运行?
看起来是tasklist不正常 nttwqz 发表于 2023-9-26 17:15
看起来是tasklist不正常
确实是这样: nttwqz 发表于 2023-9-26 08:33
这是要干嘛?
防止多开? 学习学习 wxinchun92 发表于 2023-9-26 17:58
防止多开?
非也 写了个小程序,pan.baidu.com/s/1_84dug1V1y6WNOa_Q6OyYw?pwd=p760
用法taskn.exe Notepad2.exe,返回同名进程个数,
没记错的话这是我第二次给你写程序了。 按你的代码修改一下
@echo off
:B
for /f %%a in ('taskn.exe Notepad2.exe') do if %%a gtr 1 goto :A
ping -n 3 127.0.0.1 >nul
goto :B
:A
echo Hello
pause batche 发表于 2023-9-26 21:54
写了个小程序,pan.baidu.com/s/1_84dug1V1y6WNOa_Q6OyYw?pwd=p760
用法taskn.exe Notepad2.exe,返回同名 ...
辛苦了 谢谢 batche 发表于 2023-9-26 22:01
按你的代码修改一下
我试一试 谢谢 batche 发表于 2023-9-26 21:54
写了个小程序,pan.baidu.com/s/1_84dug1V1y6WNOa_Q6OyYw?pwd=p760
用法taskn.exe Notepad2.exe,返回同名 ...
成功了再次感谢
页:
[1]
2