Ich möchte eine exklusive Sperre für eine Datei haben, damit sie von nichts anderem gelesen oder geschrieben werden kann. Gibt es ein einfaches Windows-Tool oder einen Befehl, um dies zu tun?
Ich nehme an, das Tool oder Dienstprogramm würde die LockFileEx Windows-Funktion implementieren .
Hinweis : Ich habe Texteditoren wie Notepad und Notepad ++ für eine Textdatei ausprobiert, aber sie haben keine exklusive Sperre.
windows-7
windows-server-2008
John K
quelle
quelle
Antworten:
Probieren Sie Easy File Locker (Freeware).
quelle
Einfachere Lösung: Führen Sie im Verzeichnis von Interesse aus der Zeile cmd Folgendes aus:
Als umgeleitete Standardausgabe bleibt sie gesperrt, bis die Anwendung (Editor) beendet wird.
Beachten Sie, dass die "Filetolock" durch die Umleitung überschrieben wird, so dass Sie wahrscheinlich keine vorhandene Datei von Bedeutung verwenden möchten. Ein leeres "filetolock" spielt für die Anwendung, die Sie testen möchten, keine Rolle, da die App es ohnehin nicht öffnen kann.
quelle
notepad >>filetolock
Sperren Sie eine Datei ohne 3rd Party Tools , keine Änderungen an der Datei ist gesperrt und Datei nicht einmal kopiert werden können
Dieses PowerShell-Skript ist ein Zitat aus einer Antwort auf eine ähnliche Frage.
Wenn Sie es hilfreich finden, können Sie die ursprüngliche Antwort und nicht diesen Beitrag stimmen .
quelle
[void](Read-Host 'Press Enter to continue')
anstelle von$host.UI.RawUI.ReadKey(...)
ReadKey in der Pseudokonsole in Powershell ISE nicht unterstützt.Öffne es mit MS-Excel ... diese App sperrt eine geöffnete Datei.
quelle
FileLocker ist ein Freeware / Open Source-Befehlszeilenprogramm.
Verwendungszweck:
quelle
Da ich keine Kommentare schreiben kann, füge ich meine Informationen folgendermaßen hinzu:
https://stackoverflow.com/questions/5860542/how-can-i-simulate-a-locked-file-one-which-has-a-write-lock
EDIT: Zusammenfassung der anderen Frage:
Befehl pause:
( >&2 pause ) >> file2lock.txt
MS-Programme wie Word- oder Excel-Sperren auch (funktioniert für Textdateien)
Verwenden Sie programmgesteuert
LockFileEx
(Windows-API) mitLOCKFILE_EXCLUSIVE_LOCK
undLOCKFILE_FAIL_IMMEDIATELY
quelle
So repliziere ich das Benutzerverhalten einer gesperrten Datei zum Testen von Fehlern.
Dim s As New StreamReader ("C: \ test \ sampleFile.txt")
Ich füge diese Zeile meinem Unit-Test hinzu, um die Datei zu sperren, und führe dann den Test im Debug-Modus aus, um ein schlechtes Verhalten zu replizieren, wenn eine bestimmte Datei gesperrt ist.
Ich weiß immer noch nicht, wie meine Geschäftsbenutzer die angegebene Datei sperren. Wie Sie sagten, kann der Editor ihn nicht exklusiv sperren.
Glücklicherweise sperrt das Deklarieren eines Streamreaders eine Datei ausschließlich, sofern Sie nichts anderes angeben.
quelle
Ich befürworte die Lösung mit Marsh-Wiggle. Hier ist meine Version des Skripts:
Sie können es wie folgt von cmd aufrufen:
quelle
Zum Testen von Robocopy ERROR "Zugriff verweigert" Ich habe gerade den Lesezugriff für den Benutzer entfernt. Funktioniert das?
Für Windows 10 kann dies problemlos über die Befehlszeile erfolgen
Für Windows 7 können Sie die Sicherheitseigenschaften des Datei-Explorers verwenden.
quelle
Ersetzen Sie 'Your-Password-Here' durch Ihr Passwort und speichern Sie dieses Skript als Locker.bat
Wenn Sie die Stapeldatei ausführen, wird die Eingabeaufforderung "Sind Sie sicher, dass Sie den Ordner sperren möchten (J / N)" angezeigt. Geben Sie Y ein und drücken Sie die Eingabetaste. Der Ordner wird gesperrt.
Führen Sie die Batch-Datei erneut aus und geben Sie Ihr Kennwort und den Ordner ein. Alle Ihre Dateien werden wieder entsperrt.
quelle