Kopiert von Warum Robocopy noch eine geöffnete Datei kopieren, von txt editor in Fenster geöffnet
Windows hat von MS-DOS das Konzept der "Freigabemodi" als einfache Form der Dateisperre geerbt. Beim Öffnen einer Datei können Sie auswählen, ob Sie sie zum Lesen / Schreiben, nur zum Lesen oder gar nicht freigeben möchten. Einige Skriptinterpreter verwenden immer "share all".
Sie können jedoch jede .NET-Laufzeitsprache und die 4-Parameter- Funktion System.IO.File.Open () verwenden. Wahrscheinlich hat Ihr Windows-System einen C # -Compiler (csc.exe), der irgendwo versteckt ist. Heutzutage ist es einfacher, dies in PowerShell zu tun:
$fh = [System.IO.File]::Open($path, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::None)
Der vierte Parameter kann ein beliebiger System.IO.FileShare-Enumerationswert sein, beispielsweise:
[System.IO.FileShare]::None
- nichts teilen[System.IO.FileShare]::Read
- Share lesen (Block schreiben / löschen)[System.IO.FileShare]::ReadWrite
- Lesen / Schreiben teilen (Block löschen)
Wenn du fertig bist:
$fh.Close()