Unlocker 1.9.1を試しましたが、Windows7では正しく機能しません(Windows XPでは問題なく動作しました)。また、LockHunter 2.0.2.103 x64を試し、バグを報告しましたが.... LockHunterは実際にはGUIからファイルのロックを解除しますが、コマンドラインからではありません。
したがって、handle.exeを SysInternals で使用して、1つのファイル「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
コマンドラインから自動的に上記の情報を使用してファイルのロックを解除する方法を知る必要があること。ユーザーの介入はできません。
handle.exe
を1回使用して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
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
EXECUTE:
for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do handle.exe -c %j -y -p %i
実行とタスク:
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
Batファイルなしでコンテキストメニューから実行。 1)C:\ Windowsにhandle64.exeファイルを置きます。 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"