如何使用 handle.exe 和进程名称解锁文件?

如何使用 handle.exe 和进程名称解锁文件?

我尝试了 Unlocker 1.9.1,但是它在 Windows7 上无法正常工作(在 Windows XP 上运行良好),我也尝试了 LockHunter 2.0.2.103 x64 并报告了一个错误,但是... LockHunter 实际上是从 GUI 解锁文件,而不是从命令行解锁。

所以我想使用 handle.exe系统内部解锁一个文件“TestPro.log”。我知道绝对路径,如果它有帮助的话。我可以通过执行列出所有锁定该文件的进程

C:\Windows\system32>c:\edutester\progs\handle testpro.log
java.exe           pid: 2120   type: File           338: C:\Users\Public\TestPro
\TestPro Automation Framework\Logs\TestPro.log
java.exe           pid: 1004   type: File           934: C:\Users\Public\TestPro
\TestPro Automation Framework\Logs\TestPro.log

我需要知道如何使用以上信息解锁文件命令行自动. 无需用户干预。

  • Windows 7 64位
  • Microsoft Windows [版本 6.1.7601]

答案1

您可以使用handle.exe一次列出 PID 和句柄,然后再次使用多次来关闭每一个。

使用for /f命令循环遍历第一个命令的结果。我手边没有 Windows 机器可以测试,但它应该看起来像这样:

从批处理文件:

for /F "tokens=3,6 delims=: " %%I IN ('handle.exe -accepteula TestPro.log') DO handle.exe -c %%J -y -p %%I

从命令行:

for /F "tokens=3,6 delims=: " %I IN ('handle.exe -accepteula TestPro.log') DO handle.exe -c %J -y -p %I

答案2

https://technet.microsoft.com/en-us/sysinternals/handle.aspx

测试和显示(试运行):

for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do @echo %i %j                                                                    

执行(关闭句柄):

for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do handle.exe -c %j -y -p %i  

执行(关闭句柄)然后执行 TASKKILL:

for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do handle.exe -c %j -y -p %i & taskkill /t /f /PID %i                                                       

答案3

无需使用 bat 文件即可从上下文菜单执行。1) 将文件 handle64.exe 放在 C:\Windows 中。2) 创建并执行 reg 脚本

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\WhatBlockFile]
    "Icon"="C:\\ico\\Buttons\\Annotate_Help.ico"
    "MUIVerb"="Что блокирует?"
    "Position"="Top"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\WhatBlockFile\command]
    @="C:\\Windows\\system32\\Cmd.exe /c C:\\Windows\\handle64.exe -u \"%1\" & pause"

相关内容