हैंडल.exe और प्रक्रिया नाम का उपयोग करके फ़ाइलों को अनलॉक कैसे करें?


8

मैंने Unlocker 1.9.1 की कोशिश की, लेकिन यह मेरे लिए Windows7 (Windows XP पर ठीक काम किया) पर सही ढंग से काम नहीं करता है और मैंने लॉकहंटर 2.0.2.103 x64 की भी कोशिश की और एक बग की सूचना दी लेकिन .... लॉकहंटर वास्तव में GUI से फ़ाइल को अनलॉक करता है लेकिन कमांड लाइन से नहीं।

इसलिए मैं एक फ़ाइल "TestPro.log" को अनलॉक करने के लिए SysInternals द्वारा handle.exe का उपयोग करना चाहता हूं । मुझे पता है कि अगर यह मदद करता है। मैं सूची और सभी प्रक्रियाओं को निष्पादित करके फ़ाइल को लॉक कर सकता हूं

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

मुझे स्वचालित रूप से कमांड लाइन से उपरोक्त जानकारी का उपयोग करके फ़ाइल को अनलॉक करने का तरीका जानने की आवश्यकता है । कोई उपयोगकर्ता हस्तक्षेप संभव नहीं है।

  • विंडोज 7 64 बिट
  • Microsoft Windows [संस्करण 6.1.7601]

जवाबों:


8

आप handle.exeपीआईडी ​​और हैंडल को सूचीबद्ध करने के लिए एक बार उपयोग कर सकते हैं , फिर हर एक को बंद करने के लिए कई बार।

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

मैं इसे काम नहीं कर सकता। आपका कोड मुझे देता है ('handle.exe was unexpected at this time.मुझे लगता है कि inपहले याद आ रही है ('handle.exe was unexpected at this time.लेकिन फिर %%J contains : `तो यह handle.exe के लिए मान्य तर्क नहीं है
Radek

हाँ, मुझे याद है कि कमांड को ठीक से प्राप्त करने में परेशानी हो रही है, लेकिन मुझे याद नहीं है कि मैंने अपने सिर के ऊपर से क्या किया था। मैं अपनी बैच फ़ाइल तक फिर से पहुंचने की कोशिश कर रहा हूं ताकि मैं अपने जवाब को सही वाक्यविन्यास के साथ अपडेट कर सकूं।
स्टीफन जेनिंग्स

@Radek मैंने उपयोग किए गए वास्तविक कोड के साथ अपना उत्तर अपडेट किया। लगता है जैसे मैं मिला %%Iऔर %%Jमिला, और हमें एक सीमांकक के रूप में बृहदान्त्र की आवश्यकता है। यह कोशिश करो और देखो कि यह कैसे जाता है।
स्टीफन जेनिंग्स

Cmd प्रशासक के रूप में शुरू होता है तो अच्छी तरह से (दोनों बैच फ़ाइल और कमांड लाइन संस्करण) काम करता है। किसी भी विचार मैं इसे अपने रात भर स्वचालन परीक्षण के हिस्से के रूप में कैसे काम कर सकता हूं? runasइस मामले में मेरे लिए काम नहीं करता है।
राडेक ऑक्ट

काम कर गया। चाल यह है कि रनस के तहत चलने का कमांड वास्तव में cmd.exe है और cmd का तर्क आपका कोड है। मैं इसे बिना cmd के कर रहा था।
राडेक

0

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  

परीक्षा और परीक्षा:

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
क्या आप इस पर विस्तार कर सकते हैं और बता सकते हैं कि यह (साढ़े चार साल पुराना) स्वीकृत उत्तर पर कैसे सुधरता है ?
बर्टिएब

मैं देखता हूं कि आपके आदेश स्वीकृत उत्तर से भिन्न हैं, इसलिए इसका वैध उत्तर है। हालाँकि, जैसा कि bertieb ने संकेत दिया है, आपके उत्तर को इस बात की व्याख्या की आवश्यकता है कि आपके कमांड क्या करेंगे और कैसे वे ओपी प्रश्न को संबोधित करेंगे। सुपरयूजर में योगदान के लिए धन्यवाद।
मैं कहता हूं कि मोनिका

0

एक बैट फ़ाइल के बिना संदर्भ मेनू से निष्पादन। 1) फ़ाइल को C: \ Windows में हैंडल 64.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"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.