![以程式設計解鎖或刪除鎖定的資料夾](https://rvso.com/image/1604620/%E4%BB%A5%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E8%A7%A3%E9%8E%96%E6%88%96%E5%88%AA%E9%99%A4%E9%8E%96%E5%AE%9A%E7%9A%84%E8%B3%87%E6%96%99%E5%A4%BE.png)
一、總結
我找不到如何透過命令列介面解鎖或刪除鎖定的資料夾及其所有子資料夾。
2. 論證
我正在做這個專案。例如,我的來源資料夾 - sources
,輸出資料夾 - output
。我查看文件和/或進行測試更改output
→ 我添加更改sources
→ 我運行構建命令(build
例如),這應該覆蓋output
.但build
無法正確啟動:
正在使用的資料夾
該操作無法完成,因為該資料夾或其中的檔案已在另一個程式中開啟
關閉資料夾或檔案並重試
因此,每次build
啟動前我都會打開 LockHunter → 解鎖output
→ 運行build
。
如果可以output
在之前運行解鎖或刪除命令build
,那就太好了,我不需要每次都手動運行LockHunter,花時間在上面。
3. MCVE
我建立了一個資料夾KiraUnlockCLI
→開啟命令提示字元→移至KiraUnlockCLI
其中(cd KiraUnlockCLI
)→KiraUnlockCLI
鎖定:
我需要KiraUnlockCLI
以程式方式解鎖或刪除。
4. 要求
任何類型的程式都可以鎖定
output
其中的資料夾和/或文件,範例:- Windows資源管理器
- 命令提示符
- 文字編輯器
- 瀏覽器
- 圖片瀏覽器
解決方案必須解鎖資料夾,而不僅僅是文件。我可以在第三方程式中開啟其中的任何文件
output
及其子資料夾。- 必須支援相對路徑。
output
對於我、另一個開發人員和持續整合(Travis CI、AppVeyor)來說位於不同的目錄中。
5.沒有幫助
5.1.相對路徑
開鎖者不支援相對路徑。
2019年9月初我寫了一個問題→ 我在中講述了我的問題LockHunter 回饋表→ 我還沒有收到任何回饋。
5.2.資料夾支援
這些程式可以解鎖文件,但不能解鎖資料夾。
5.3.具體PID
- 處理— 解鎖所需的 PID。但我需要殺死具有任何 PID 的進程;請參閱我的問題的 4.1 項。
5.4.圖形使用者介面
我找不到有關這些程式的命令列介面的任何資訊:
5.5.不起作用
rm -rf KiraUnlockCLI
(rm
從GnuWin32):/usr/bin/rm: cannot remove 'KiraUnlockCLI`: Device or resource busy
開啟的文件視圖— 此指令後沒有效果:
openedfilesview /closefolder closeprocess killprocess KiraUnlockCLI
解鎖器—
unlocker D:\SashaDebugging\KiraUnlockCLI
:未找到鎖定手把。
然而Unlocker可以幫助你處理這個物體。
選擇要對物件執行的操作。
6. 不提供
答案1
自從我發現 IOBit Unlocker(大約 10 年前)以來,我就不再使用您提供的所有工具以及其他一些工具,為什麼?無論如何,它實際上都會刪除文件/資料夾,具有乾淨的介面,並且您還可以自動化(如您所要求的)。幾年後,我在網路上看到一篇文章,指出它甚至會刪除受保護和正在使用的 Avast AV 檔案。
如果需要,您可以安裝並保留它,或者簡單地獲取檔案並獨立使用它(用於IObitUnlocker.exe /?
查看命令列幫助):
安裝:
IObitUnlocker.exe /Delete /Advanced <folder>
獨立:
cd <app folder>
sc create IObitUnlocker type= kernel start= demand binPath= "IObitUnlocker.sys"
IObitUnlocker.exe /Delete /Advanced <folder>
sc delete IObitUnlocker
rd /S /Q %AllUsersProfile%\IObit
自動化方面的一個缺點是在操作後顯示一條訊息,但您可以使用timeout /T <time> && taskkill /IM IObitUnlocker.exe
.這<time>
取決於資料夾內容/層次結構、正在使用的檔案數量、系統速度和 CPU/HDD 負載。請記住,解鎖需要提升高度。
如果您碰巧使用 AutoHotKey,則對話方塊關閉(以及您能想到的任何 UI 互動)非常容易自動化。
SetTimer, DismissUnlocker, 1000
DismissUnlocker() {
If WinExist("IObit Unlocker ahk_class #32770")
ControlClick, Button1
}