Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Batch file 需要一个批处理脚本来获取负责打开文件的进程的PID_Batch File - Fatal编程技术网

Batch file 需要一个批处理脚本来获取负责打开文件的进程的PID

Batch file 需要一个批处理脚本来获取负责打开文件的进程的PID,batch-file,Batch File,我正在尝试创建一个批处理脚本,在该脚本中,我需要grep负责打开文件的进程,然后将该进程的PID存储在变量中 然后完全杀死它。这就是我用来完成类似任务的方法 echo off FOR /F %%T IN ('Wmic process where^(Name^="Console.exe"^)get ProcessId^|more +1') DO ( SET /A ProcessId=%%T) &GOTO SkipLine

我正在尝试创建一个批处理脚本,在该脚本中,我需要grep负责打开文件的进程,然后将该进程的PID存储在变量中
然后完全杀死它。

这就是我用来完成类似任务的方法

echo off
FOR /F %%T IN ('Wmic process where^(Name^="Console.exe"^)get ProcessId^|more +1') DO (
SET /A ProcessId=%%T) &GOTO SkipLine                                                   
:SkipLine                                                                              
echo Killing Process at PID= %ProcessId%   
taskkill /F /PID %ProcessId%  
exit /b %errorlevel%
将Console.exe替换为要终止的任务。Console.exe是您将在taskmanager中看到的进程名称

作为旁注,这将杀死if可以找到的“Console.exe”的第一个实例,因此如果有多个进程在运行,它将只杀死第一个


创建了一个非常好的工具(),它允许您右键单击带有文件锁的文件并选择“解锁”,该工具将释放文件锁

负责打开哪个文件的进程的PID?。但是,您希望如何确定负责打开文件的流程?Cf.@rojoI的注释总是得到一个错误“output_-Measures-CQM2015-Tests.xml:进程无法访问该文件,因为它正被另一个进程使用…”然后我总是搜索文件“output_-Measures-CQM2015-Tests.xml”通过进程探索并获取使用此文件的进程的PID,然后终止该进程。我需要一个批处理脚本,通过该脚本我可以找到进程PID(使用该文件的进程)并终止该进程。使用
处理输出\u MU-Measures-CQM2015-Tests.xml | find/I“PID:
提供准确的所需信息,使用
可轻松解析/F
。谢谢@ziddarth的推荐。我不会运行它,因为:1。文件是否始终由相同的进程名锁定?如果是,那么2。第一个实例真的锁定了问题中的文件吗?是的,我总是发现java.exe进程锁定了文件,然后我杀死了该java.exe进程,但更重要的是还有另一个java.exe进程在运行。我总是杀死与该文件相关联的那个进程(使用文件名搜索进程,并使用该进程的PID仅终止该进程)