Gesperrte Ordner programmgesteuert entsperren oder löschen

Gesperrte Ordner programmgesteuert entsperren oder löschen

1. Zusammenfassung

Ich konnte nicht herausfinden, wie ich gesperrte Ordner mit allen Unterordnern über die Befehlszeilenschnittstelle entsperren oder löschen kann.


2. Argumentation

Ich arbeite am Projekt. Zum Beispiel mein Quellenordner — sources, Ausgabeordner — output. Ich schaue mir Dateien an und/oder nehme Teständerungen vor in output→ Ich füge Änderungen hinzu in sources→ Ich führe den Build-Befehl aus ( build, zum Beispiel), der überschreiben sollte output. Aber buildstartet nicht richtig:

Verwendeter Ordner

Verwendeter Ordner

Die Aktion kann nicht abgeschlossen werden, da der Ordner oder eine darin enthaltene Datei in einem anderen Programm geöffnet ist

Schließen Sie den Ordner oder die Datei und versuchen Sie es erneut

Daher buildhabe ich vor jedem Start LockHunter geöffnet → entsperrt output→ ausgeführt build.

Es wäre schön, wenn es möglich wäre, den Befehl zum Entsperren oder Löschen outputvorher auszuführen build, sodass ich LockHunter nicht jedes Mal manuell ausführen und damit Zeit verschwenden muss.


3. MCVE

Ich habe einen Ordner erstellt KiraUnlockCLI→ Eingabeaufforderung geöffnet → KiraUnlockCLIdarin verschoben ( cd KiraUnlockCLI) → KiraUnlockCLIgesperrt:

Ordner gesperrt

Ich muss es programmgesteuert entsperren oder löschen KiraUnlockCLI.


4. Voraussetzungen

  1. Jeder Programmtyp kann outputOrdner und/oder darin enthaltene Dateien sperren, Beispiele:

    1. Windows Explorer
    2. Eingabeaufforderung
    3. Texteditor
    4. Browser
    5. Bilderbetrachter
  2. Die Lösung muss Ordner entsperren, nicht nur Dateien. Ich kann alle darin enthaltenen Dateien und deren Unterordner in Drittanbieterprogrammen öffnen output.

  3. Relative Pfade müssen unterstützt werden. outputbefindet sich für mich, andere Entwickler und Continuous Integration (Travis CI, AppVeyor) in unterschiedlichen Verzeichnissen.

5. Nicht geholfen

5.1. Relative Pfade

  1. LockHunterunterstützt keine relativen Pfade.

    Anfang September 2019schrieb eine Ausgabe→ Ich habe von meinem Problem erzählt inLockHunter Feedback-Formular→ Ich habe keine Rückmeldung erhalten.

5.2. Ordnerunterstützung

Diese Programme können Dateien entsperren, aber keine Ordner.

  1. DateiASSASSIN:

    FileASSASSIN /unlock /silent KiraUnlockCLI
    
  2. BeschäftigtLöschen

5.3. Spezifische PID

  1. Handhaben— Zum Entsperren sind PIDs erforderlich. Aber ich muss Prozesse mit beliebigen PIDs beenden; siehe Punkt 4.1 meiner Frage.

5.4. Benutzeroberfläche (GUI)

Ich konnte keine Informationen zur Befehlszeilenschnittstelle dieser Programme finden:

  1. IObit Unlocker
  2. Entsperre es

5.5. Funktioniert nicht

  1. rm -rf KiraUnlockCLI( rmausGnuWin32):

    /usr/bin/rm: cannot remove 'KiraUnlockCLI`: Device or resource busy
    
  2. GeöffneteDateiansicht— keine Wirkung nach diesem Befehl:

    openedfilesview /closefolder closeprocess killprocess KiraUnlockCLI
    
  3. Wer sperrt mich? funktioniert nicht unter Windows 10.

  4. Unlockerunlocker D:\SashaDebugging\KiraUnlockCLI:

    Unlocker

    Kein Verriegelungsgriff gefunden.

    Unlocker kann Ihnen jedoch beim Umgang mit diesem Objekt helfen.

    Wählen Sie die Aktion aus, die Sie für das Objekt ausführen möchten.

  5. SackgasseOrdner können nicht über die Befehlszeilenschnittstelle entsperrt werden. Siehemein Problemzum DeadLock-Issue-Tracker.


6. Bieten Sie nicht

  1. Ich weißNebenwirkungen; bitte erzählen Sie mir nicht, dass ich den Ordner nicht entsperren muss.
  2. Ich habe diese SuperUser-Fragen und die dazugehörigen Antworten gelesen, bevor ich meine Frage gepostet habe:

    1. Leerer Ordner kann nicht gelöscht werden, da er verwendet wird
    2. Gibt es eine Möglichkeit, gesperrte Dateien über die Befehlszeile zu verwalten und freizugeben?
    3. Wie lösche ich einen Ordner, der verwendet wird?
    4. Löschen Sie ein Verzeichnis über die Windows-Befehlszeile, auch wenn es in einem Programm geöffnet wurde
    5. Gesperrte Datei/Ordner über die Befehlszeile löschen
  3. Ich habe Programme von überprüftdiese Listeauf der Unlocker-Site.

Antwort1

Seit ich IOBit Unlocker gefunden habe (vor ca. 10 Jahren), verwende ich keine der von Ihnen bereitgestellten und einige andere Programme mehr. Warum? Es löscht tatsächlich Dateien/Ordner, egal was passiert, hat eine übersichtliche Oberfläche und Sie können es auch automatisieren (wie Sie es wollten). Ein paar Jahre später bin ich auf einen Online-Artikel gestoßen, in dem es heißt, dass es sogar geschützte und verwendete Avast AV-Dateien löscht.

Wenn Sie möchten, können Sie es so installieren und belassen oder einfach die Dateien abrufen und eigenständig verwenden (verwenden Sie , IObitUnlocker.exe /?um die Befehlszeilenhilfe anzuzeigen):

Eingerichtet:

IObitUnlocker.exe /Delete /Advanced <folder>

Eigenständige:

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

Ein Nachteil bei der Automatisierung ist, dass nach der Aktion eine Meldung angezeigt wird, Sie können jedoch verwenden timeout /T <time> && taskkill /IM IObitUnlocker.exe. Dies <time>hängt vom Ordnerinhalt/der Ordnerhierarchie, der Anzahl der verwendeten Dateien, der Geschwindigkeit Ihres Systems und der CPU-/Festplattenauslastung ab. Bedenken Sie, dass zum Entsperren erhöhte Rechte erforderlich sind.

Wenn Sie AutoHotKey verwenden, lässt sich das Schließen des Dialogs (und jede andere UI-Interaktion, die Ihnen einfällt) ganz einfach automatisieren.

SetTimer, DismissUnlocker, 1000
DismissUnlocker() {
  If WinExist("IObit Unlocker ahk_class #32770")
    ControlClick, Button1
}

verwandte Informationen