Скопировано из Почему Robocopy все еще копирует открытый файл, открытый TXT-редактором в Windows
Windows унаследовала от MS-DOS концепцию «общих режимов» как простую форму блокировки файлов. При открытии файла вы можете выбрать, использовать его для чтения / записи, только для чтения или нет. Некоторые интерпретаторы сценариев всегда используют «поделиться всем».
Однако вы можете использовать любой язык .NET-среды выполнения и функцию с четырьмя параметрами System.IO.File.Open () . Скорее всего, в вашей системе Windows где-то спрятан компилятор C # (csc.exe), но в настоящее время это проще сделать в PowerShell:
$fh = [System.IO.File]::Open($path, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::None)
4-й параметр может быть любым значением перечисления System.IO.FileShare, например:
[System.IO.FileShare]::None
- не делись ничем[System.IO.FileShare]::Read
- поделиться прочитанным (заблокировать запись / удаление)[System.IO.FileShare]::ReadWrite
- разделить чтение / запись (блокировка удаления)
Когда вы закончите:
$fh.Close()