Como desbloquear arquivos usando o handle.exe e o nome do processo?

8

Eu tentei o Unlocker 1.9.1 mas ele não funciona corretamente para mim no Windows7 (funcionou bem no Windows XP) e também tentei o LockHunter 2.0.2.103 x64 e relatei um bug, mas ... O LockHunter na verdade desbloqueia o arquivo da interface gráfica, mas não da linha de comando.

Então eu quero usar o handle.exe por SysInternals para desbloquear um arquivo "TestPro.log" . Eu sei o caminho absoluto se isso ajuda. Eu posso listar e todos os processos que bloquearam o arquivo executando

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

O que eu preciso saber como desbloquear o arquivo usando as informações acima da linha de comando automaticamente . Nenhuma intervenção do usuário é possível.

  • Windows 7 de 64 bits
  • Microsoft Windows [versão 6.1.7601]
por Radek 12.10.2012 / 04:12

2 respostas

8

Você pode usar handle.exe uma vez para listar os PIDs e as alças, e novamente várias vezes para fechar cada um deles.

Use o comando for /f para percorrer o resultado do primeiro comando. Eu não tenho uma máquina Windows à mão para testar, mas deve ser algo como isto:

De um arquivo em lotes:

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

Na linha de comando:

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

link

TESTE E EXIBIÇÃO:

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

EXECUTE:

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

EXECUTAR E 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                                                       
    
por 16.02.2017 / 11:27