Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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
Windows TASKKILL之后运行的进程_Windows_Batch File - Fatal编程技术网

Windows TASKKILL之后运行的进程

Windows TASKKILL之后运行的进程,windows,batch-file,Windows,Batch File,问题与下面显示的脚本有关: @echo on :MAIN start "myname" cmd /c "build\jre\bin\java -jar MainThread.jar" timeout /t 2 >null TASKLIST /v /fi "IMAGENAME eq cmd.exe">myfile.txt TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname" TASKLIST /v /fi

问题与下面显示的脚本有关:

@echo on
:MAIN
start "myname" cmd /c "build\jre\bin\java -jar MainThread.jar"
timeout /t 2 >null
TASKLIST /v /fi "IMAGENAME eq cmd.exe">myfile.txt
TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
TASKLIST /v /fi "IMAGENAME eq cmd.exe">myfile2.txt
:exit

当我第一次执行tasklist时,myname被列在tasklist中。在执行taskkill后,myname进程没有显示在taskkill后执行的tasklist中,但它正在运行。虽然它的名称不在tasklist中,它正在执行。TASKKILL成功地删除了它的条目,但没有终止进程。我应该如何终止该进程?

已启动
java
进程占用了家长
cmd
窗口名,但不早于后者家长
cmd
进程终止。使用未安装
java
的替换
where
给出的证明(因为
where.exe
运行了很长一段时间以截屏,甚至检查任务管理器)

测试脚本

@echo on
:MAIN
start "myname" cmd /C where /R c:\ "whistle.*" 
@timeout /t 1 >null
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
:exit
==> D:\bat\SO\36185868.bat

==> start "myname" cmd /C where /R c:\ "whistle.*"

==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"cmd.exe","3340","Console","1","2 240 K","Running","pcn\usern","0:00:00","myname"

==> TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Unknown","pcn\usern","0:00:01","N/A"

==> TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
SUCCESS: The process with PID 3340 has been terminated.

==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Running","pcn\usern","0:00:01","myname"

==>
输出

@echo on
:MAIN
start "myname" cmd /C where /R c:\ "whistle.*" 
@timeout /t 1 >null
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
:exit
==> D:\bat\SO\36185868.bat

==> start "myname" cmd /C where /R c:\ "whistle.*"

==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"cmd.exe","3340","Console","1","2 240 K","Running","pcn\usern","0:00:00","myname"

==> TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Unknown","pcn\usern","0:00:01","N/A"

==> TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
SUCCESS: The process with PID 3340 has been terminated.

==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Running","pcn\usern","0:00:01","myname"

==>
屏幕截图

@echo on
:MAIN
start "myname" cmd /C where /R c:\ "whistle.*" 
@timeout /t 1 >null
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
:exit
==> D:\bat\SO\36185868.bat

==> start "myname" cmd /C where /R c:\ "whistle.*"

==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"cmd.exe","3340","Console","1","2 240 K","Running","pcn\usern","0:00:00","myname"

==> TASKLIST /v /NH /fi "IMAGENAME eq Where.exe" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Unknown","pcn\usern","0:00:01","N/A"

==> TASKKILL /f /fi "IMAGENAME eq cmd.exe" /fi "WINDOWTITLE eq myname"
SUCCESS: The process with PID 3340 has been terminated.

==> TASKLIST /V /NH /fi "WINDOWTITLE eq myname" /FO "CSV"
"where.exe","5188","Console","1","3 184 K","Running","pcn\usern","0:00:01","myname"

==>

谢谢你们的帮助。
我使用了TASKKILL/f/t/fi“IMAGENAME eq cmd.exe”/fi“WINDOWTITLE eq myname”命令/t用于关闭所有子进程,并且作为其子进程之一的java.exe已关闭。

禁用反恶意软件,然后重试。如果是Avast,则尽快卸载。Kill
java
进程,而不是家长
cmd
one。基本解释见我的答案。@JosefZ谢谢你,它奏效了。但我有一个疑问。如果有多个jar正在运行,并且我想识别一个特定的jar,那么当WINDOWTITLE显示N/A时,我将如何识别jar?
wmic进程,其中“Caption='java.exe'”获取命令行,ProcessID/value
。使用(两)个
为/F
循环解析它,检查
命令行
,使用
/PID
开关终止。看见如果我的答案是有用的,请考虑将它标记为接受。来解释为什么这很重要。