Bagaimana cara membuka file menggunakan handle.exe dan nama proses?

8

Saya mencoba Unlocker 1.9.1 tetapi tidak berfungsi dengan baik untuk saya di Windows7 (berfungsi ok pada Windows XP) dan saya juga mencoba LockHunter 2.0.2.103 x64 dan melaporkan bug tetapi .... LockHunter sebenarnya membuka kunci file dari GUI tetapi bukan dari baris perintah.

Jadi saya ingin menggunakan handle.exe oleh SysInternals untuk membuka satu file "TestPro.log". Saya tahu jalur absolut jika itu membantu. Saya bisa daftar dan semua proses yang mengunci file dengan mengeksekusi

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

Apa yang perlu saya ketahui cara membuka kunci file menggunakan info di atas dari baris perintah secara otomatis . Tidak ada intervensi pengguna.

  • Windows 7 64bit
  • Microsoft Windows [Versi 6.1.7601]
Radek
sumber

Jawaban:

8

Anda dapat menggunakan handle.exesatu kali untuk membuat daftar PID dan pegangan, lalu lagi beberapa kali untuk menutupnya.

Gunakan for /fperintah untuk mengulang hasil dari perintah pertama. Saya tidak memiliki mesin Windows yang mudah untuk diuji, tetapi akan terlihat seperti ini:

Dari file batch:

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

Dari baris perintah:

for /F "tokens=3,6 delims=: " %I IN ('handle.exe -accepteula TestPro.log') DO handle.exe -c %J -y -p %I
Stephen Jennings
sumber
Saya tidak bisa membuatnya bekerja. Kode Anda memberi saya, ('handle.exe was unexpected at this time.saya pikir ada yang hilang insebelumnya ('handle.exe was unexpected at this time.Tapi kemudian %%J contains : `jadi itu bukan argumen yang valid untuk handle.exe
Radek
Ya, saya ingat kesulitan mendapatkan perintah dengan tepat, tetapi saya tidak dapat mengingat apa yang saya lakukan di atas kepala saya. Saya mencoba mendapatkan akses ke file batch saya lagi sehingga saya dapat memperbarui jawaban saya dengan sintaks yang tepat.
Stephen Jennings
@ Radek Saya memperbarui jawaban saya dengan kode aktual yang saya gunakan. Terlihat seperti aku %%Idan %%Jbercampur, dan kita perlu usus sebagai pembatas. Coba ini dan lihat bagaimana hasilnya.
Stephen Jennings
Berfungsi dengan baik (baik file batch & versi baris perintah) jika cmd dimulai sebagai administrator. Adakah yang tahu bagaimana saya dapat membuatnya berfungsi sebagai bagian dari pengujian otomatisasi semalam saya? runastidak bekerja untuk saya dalam hal ini.
Radek
Sudah bekerja. Triknya adalah bahwa perintah untuk dijalankan di bawah runas sebenarnya adalah cmd.exe dan argumen untuk cmd adalah kode Anda. Saya melakukannya tanpa cmd.
Radek
0

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

UJI DAN TAMPILAN:

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

MENJALANKAN:

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

JADWAL DAN TUGAS:

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                                                       
Alexandre DEFRANCE
sumber
1
Bisakah Anda memperluas ini dan menjelaskan bagaimana meningkatkan jawaban yang diterima (empat setengah tahun) ?
bertieb
Saya melihat perintah Anda berbeda dari jawaban yang diterima, jadi itu jawaban yang sah. Namun, seperti yang ditunjukkan bertieb, jawaban Anda perlu penjelasan tentang apa yang akan dilakukan perintah Anda dan bagaimana mereka menjawab pertanyaan OP. Terima kasih telah berkontribusi pada SuperUser.
Saya katakan Reinstate Monica
0

Eksekusi dari menu konteks tanpa file bat. 1) Masukkan file handle64.exe di C: \ Windows. 2) Buat dan jalankan skrip 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"
Garric
sumber