Làm thế nào để mở khóa các tập tin bằng cách sử dụng handle.exe và xử lý tên?


8

Tôi đã dùng thử Unlocker 1.9.1 nhưng nó không hoạt động chính xác với tôi trên Windows7 (hoạt động tốt trên Windows XP) và tôi cũng đã thử LockHunter 2.0.2.103 x64 và báo cáo lỗi nhưng .... LockHunter thực sự mở khóa tệp từ GUI nhưng không phải từ dòng lệnh.

Vì vậy, tôi muốn sử dụng handle.exe bởi Sysinternals để mở khóa một tập tin "TestPro.log". Tôi biết con đường tuyệt đối nếu nó giúp. Tôi có thể liệt kê và tất cả các quy trình đã khóa tệp bằng cách thực thi

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

Những gì tôi cần biết làm thế nào để mở khóa tập tin bằng cách sử dụng thông tin trên từ dòng lệnh tự động . Không có sự can thiệp của người dùng là có thể.

  • Windows 7 64 bit
  • Microsoft Windows [Phiên bản 6.1.7601]

Câu trả lời:


8

Bạn có thể sử dụng handle.exemột lần để liệt kê các PID và tay cầm, sau đó lặp lại nhiều lần để đóng từng cái.

Sử dụng for /flệnh để lặp qua kết quả của lệnh đầu tiên. Tôi không có máy Windows tiện để kiểm tra, nhưng nó sẽ trông giống như thế này:

Từ một tệp bó:

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

Từ dòng lệnh:

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

Tôi không thể làm cho nó hoạt động. Mã của bạn mang lại cho tôi ('handle.exe was unexpected at this time.Tôi nghĩ rằng đã bị thiếu intrước ('handle.exe was unexpected at this time.Nhưng sau đó %%J contains : `vì vậy đó không phải là đối số hợp lệ cho handle.exe
Radek

Vâng, tôi nhớ đã gặp khó khăn khi nhận lệnh chính xác, nhưng tôi không thể nhớ những gì tôi đã làm trên đỉnh đầu. Tôi đang cố gắng để có được quyền truy cập vào tệp bó của mình một lần nữa để tôi có thể cập nhật câu trả lời của mình với cú pháp đúng.
Stephen Jennings

@Radek Tôi đã cập nhật câu trả lời của mình với mã thực tế tôi đã sử dụng. Có vẻ như tôi đã nhận được %%I%%Jtrộn lẫn, và chúng tôi cần dấu hai chấm làm dấu phân cách. Hãy thử điều này và xem làm thế nào nó đi.
Stephen Jennings

Hoạt động độc đáo (cả phiên bản tệp bó & dòng lệnh) nếu cmd bắt đầu với tư cách quản trị viên. Bất kỳ ý tưởng làm thế nào tôi có thể làm cho nó hoạt động như là một phần của thử nghiệm tự động hóa qua đêm của tôi? runaskhông làm việc cho tôi trong trường hợp này.
Radek

Nó đã làm việc Thủ thuật là lệnh chạy dưới runas trên thực tế là cmd.exe và đối số cho cmd là mã của bạn. Tôi đã làm nó mà không có cmd.
Radek

0

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

KIỂM TRA VÀ HIỂN THỊ:

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

HÀNH HÌNH:

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

EXECUTE VÀ 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                                                       

1
Bạn có thể mở rộng về điều này và giải thích nó cải thiện như thế nào trên câu trả lời được chấp nhận (bốn tuổi rưỡi) không?
bertieb

Tôi thấy các lệnh của bạn khác với câu trả lời được chấp nhận, vì vậy đó là một câu trả lời hợp pháp. Tuy nhiên, như bertieb đã chỉ ra, câu trả lời của bạn cần một lời giải thích về việc các lệnh của bạn sẽ làm gì và cách chúng giải quyết câu hỏi OP. Cảm ơn bạn đã đóng góp cho SuperUser.
Tôi nói Phục hồi Monica

0

Thực hiện từ menu ngữ cảnh mà không có tập tin bat. 1) Đặt tệp handle64.exe vào C: \ Windows. 2) Tạo và thực thi tập lệnh 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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.