Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 批处理文件,以检查exe是否正在运行,如果正在运行taskkill_Loops_Time_Batch File_Flash_Taskkill - Fatal编程技术网

Loops 批处理文件,以检查exe是否正在运行,如果正在运行taskkill

Loops 批处理文件,以检查exe是否正在运行,如果正在运行taskkill,loops,time,batch-file,flash,taskkill,Loops,Time,Batch File,Flash,Taskkill,firefox Flashplayerplugin占用了太多内存,并且在我的系统不使用时出现了问题。我找到的唯一解决方案是在使用firefox时杀死flashplayerplugin,卸载、重新安装或重新安装firefox,或者新的配置文件无法解决这个问题;然而,一直检查taskmanager并杀死它变得非常乏味,flashplayerplugin似乎总是自己开始 我的问题是,是否可以创建一个批处理文件来检查FlashPlugin_11_8_800_94.exe是否正在运行,并在5-10秒后将其

firefox Flashplayerplugin占用了太多内存,并且在我的系统不使用时出现了问题。我找到的唯一解决方案是在使用firefox时杀死flashplayerplugin,卸载、重新安装或重新安装firefox,或者新的配置文件无法解决这个问题;然而,一直检查taskmanager并杀死它变得非常乏味,flashplayerplugin似乎总是自己开始

我的问题是,是否可以创建一个批处理文件来检查FlashPlugin_11_8_800_94.exe是否正在运行,并在5-10秒后将其杀死,然后继续以循环方式主动运行批处理文件,扫描FlashPlugin_11_8_800_94.exe是否再次启动,然后在5-10秒后将其杀死,冲洗并重复

编辑:

找到了一个批处理文件并对其进行了修改,但似乎也缺少了一些范围,以便在它运行时进行主动搜索,即使它没有运行。但这两种方式都不起作用

@echo off

:search
TASKLIST|FIND "FlashPlayerPlugin"
IF %ERRORLEVEL% = 0 THEN (GOTO found)
TIMEOUT /T 5
GOTO search

:found
taskkill /im FlashPlayerPlugin_11_8_800_94.exe
-

此批处理文件也无法工作

set tasklist=%windir%\System32\tasklist.exe
set taskkill=%windir%\System32\taskkill.exe

-------------------------------------------------------
:STOPPROC
    set wasStopped=0
    set procFound=0
    set notFound_result=ERROR:
    set procName=%1
    for /f "usebackq" %%A in (`%taskkill% /IM %procName%`) do (
      if NOT %%A==%notFound_result% (set procFound=1)
    )
    if %procFound%==0 (
      echo The process was not running.
      goto :EOF
    )
    set wasStopped=1
    set ignore_result=INFO:
:CHECKDEAD
    "%windir%\system32\timeout.exe" 3 /NOBREAK
    for /f "usebackq" %%A in (`%tasklist% /nh /fi "imagename eq %procName%"`) do (
      if not %%A==%ignore_result% (goto :CHECKDEAD)
    )
    goto :EOF
-------------------------------------------------------

:MAIN 

call :STOPPROC FlashPlayerPlugin_11_8_800_94.exe

对于仍然觉得它有用的人: 这是一个小脚本,每5秒扫描一次tasklist以查找包含processname的进程。例如,如果将notepad作为processname,它将结束notepad.exe和notepad++.exe等进程。要使用脚本,请将以下内容复制并粘贴到记事本中,并保存为simple_pk.cmd。processname可以有除双引号、符号和或逗号之外的任何字符

::Simple monitor and kill process
@echo off&prompt :&mode con cols=50 lines=10

set processname=flashplayerplugin

:loop
cls&echo Searching for %processname%...
for /f "tokens=1 delims=," %%a in ('tasklist /fo csv ^|FINDSTR /I /C:"%processname%"') do call :killprocess %%a
ping -n 6 127.0.0.1>NUL
goto :loop


:killprocess
echo. |set /p d=killing %*...
taskkill /f /im "%*">nul 2>&1
set err=%errorlevel%
set success=Success
if not %err%==0 set success=fail (err code: %err%)
if %err%==128 set success=fail (process not found)
echo %success%&goto :eof
这是同一脚本的稍有不同的版本。这将仅结束与整个名称完全匹配的进程:

::Simple monitor and kill process (exact name)
@echo off&prompt :&mode con cols=50 lines=10

set processname=FlashPlayerPlugin_11_8_800_94.exe

:loop
cls&echo Searching for %processname%...
for /f "tokens=1 delims=," %%a in ('tasklist /fo csv ^|FINDSTR /C:"%processname%"') do call :killprocess %%a
ping -n 6 127.0.0.1>NUL
goto :loop


:killprocess
set name=%*
set name=.,;%name:"=%;,.
echo %name%|FINDSTR /C:".,;%processname%;,.">nul || goto :eof
echo. |set /p d=killing %*...
taskkill /f /im "%*">nul 2>&1
set err=%errorlevel%
set success=Success
if not %err%==0 set success=fail (err code: %err%)
if %err%==128 set success=fail (process not found)
echo %success%&goto :eof

对于仍然觉得它有用的人: 这是一个小脚本,每5秒扫描一次tasklist以查找包含processname的进程。例如,如果将notepad作为processname,它将结束notepad.exe和notepad++.exe等进程。要使用脚本,请将以下内容复制并粘贴到记事本中,并保存为simple_pk.cmd。processname可以有除双引号、符号和或逗号之外的任何字符

::Simple monitor and kill process
@echo off&prompt :&mode con cols=50 lines=10

set processname=flashplayerplugin

:loop
cls&echo Searching for %processname%...
for /f "tokens=1 delims=," %%a in ('tasklist /fo csv ^|FINDSTR /I /C:"%processname%"') do call :killprocess %%a
ping -n 6 127.0.0.1>NUL
goto :loop


:killprocess
echo. |set /p d=killing %*...
taskkill /f /im "%*">nul 2>&1
set err=%errorlevel%
set success=Success
if not %err%==0 set success=fail (err code: %err%)
if %err%==128 set success=fail (process not found)
echo %success%&goto :eof
这是同一脚本的稍有不同的版本。这将仅结束与整个名称完全匹配的进程:

::Simple monitor and kill process (exact name)
@echo off&prompt :&mode con cols=50 lines=10

set processname=FlashPlayerPlugin_11_8_800_94.exe

:loop
cls&echo Searching for %processname%...
for /f "tokens=1 delims=," %%a in ('tasklist /fo csv ^|FINDSTR /C:"%processname%"') do call :killprocess %%a
ping -n 6 127.0.0.1>NUL
goto :loop


:killprocess
set name=%*
set name=.,;%name:"=%;,.
echo %name%|FINDSTR /C:".,;%processname%;,.">nul || goto :eof
echo. |set /p d=killing %*...
taskkill /f /im "%*">nul 2>&1
set err=%errorlevel%
set success=Success
if not %err%==0 set success=fail (err code: %err%)
if %err%==128 set success=fail (process not found)
echo %success%&goto :eof

我正在查看顶部的第一段代码,我想我找到了一种方法。这就是我得到的;真的很简单

@echo off
cls
:start
timeout /t 5
tasklist|find "explorer.exe"
goto found
goto start
:found
taskkill /f /im explorer.exe
goto start 

当然,任何程序都可以运行。

我在查看顶部的第一段代码,我相信我找到了一种方法。这就是我得到的;真的很简单

@echo off
cls
:start
timeout /t 5
tasklist|find "explorer.exe"
goto found
goto start
:found
taskkill /f /im explorer.exe
goto start 

当然,任何程序都可以运行。

如果您的IF不正确:

@echo off

:search
TASKLIST|FIND "setup.exe"
IF %ERRORLEVEL% equ 0 (GOTO found)
TIMEOUT /T 5
GOTO search

:found
taskkill /im setup.exe

您的IF不正确:

@echo off

:search
TASKLIST|FIND "setup.exe"
IF %ERRORLEVEL% equ 0 (GOTO found)
TIMEOUT /T 5
GOTO search

:found
taskkill /im setup.exe
更简单的形式

@echo off
:search
TASKLIST|FIND "setup.exe"
IF %ERRORLEVEL% equ 0 (taskkill /im setup.exe
exit)
TIMEOUT /T 5
GOTO search
更简单的形式

@echo off
:search
TASKLIST|FIND "setup.exe"
IF %ERRORLEVEL% equ 0 (taskkill /im setup.exe
exit)
TIMEOUT /T 5
GOTO search

如果上面的代码可以很好地结束一次进程,只需将:loop添加到顶部,将goto loop添加到底部。另一个问题是,为什么需要检查流程是否处于活动状态。为什么不让批处理文件继续关闭FlashPlayerPlugin_11_8_800_94.exe的任何实例?这会容易得多。我发布的两个批处理文件都不起作用,它们在执行时都会显示一个空白提示。如果上面的代码可以正常工作,只需将:loop添加到顶部,将goto loop添加到底部即可。另一个问题是,为什么需要检查流程是否处于活动状态。为什么不让批处理文件继续关闭FlashPlayerPlugin_11_8_800_94.exe的任何实例?那会容易得多。我发布的批处理文件都不起作用,它们在执行时都会显示一个空白提示。f在/imin之前,事实上这不重要。如果你不相信我,你可以这样测试:-f在/imin之前,事实上这不重要。如果你不相信我,你可以这样测试:-你能告诉我们右手边带K的数字是什么意思吗。还有,为什么这个命令显示是否存在@echo off?您能告诉我们右边带K的数字是什么意思吗。还有,为什么这个命令显示是否存在@echo off?