22

Есть ли способ заблокировать файл с помощью встроенных инструментов, чтобы его нельзя было удалить или перезаписать?

Для тестирования сценариев копирования мне нужно lock files temporarily чтобы проверить обработку ошибок в сценариях. До XP я использовал загрузку файла в debug.exe, чтобы заблокировать его.

Есть ли способ в Windows 7 (и позже)?

редактировать
Я знаю, что есть программы, которые делают это. У меня вопрос, есть ли встроенный механизм в Windows. Иногда мне приходится проверять скрипт на ПК, и я не хочу устанавливать для этого новые программы.

Edit2
Вот также хорошие предложения: Как целенаправленно заблокировать файл?, которые, однако, нужны сторонние инструменты или изменить файл для блокировки.

5 ответов5

43

Я думаю, что PowerShell, вероятно, самый лучший способ сделать это. Что-то вроде следующего:

#Specify the file name
$fileName = "C:\myfile.txt"

#Open the file in read only mode, without sharing (I.e., locked as requested)
$file = [System.io.File]::Open($fileName, 'Open', 'Read', 'None')

#Wait in the above (file locked) state until the user presses a key
Write-Host "Press any key to continue ..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

#Close the file (This releases the current handle and unlocks the file)
$file.Close()

Во время паузы приведенный выше скрипт вызывает следующую подсказку при попытке открыть файл «myfile.txt»:

4

Так как я не люблю устанавливать программное обеспечение, которое я на самом деле не буду использовать, я нашел этот драгоценный камень VBScript:

Const ForAppending = 8
Set oFSO = CreateObject("Scripting.FileSystemObject")

Set f = oFSO.OpenTextFile("C:\Tst\My2.txt", ForAppending, True)

MsgBox "Press OK to unlock the file(s)"

Весь кредит переходит к Торгейру Баккену, полный пост вы можете посмотреть здесь:http://www.pcreview.co.uk/threads/how-to-lock-files.1518829/

0

Разве вы не можете пометить его только для чтения? Это эффективно блокировало бы файл, не позволяя ему быть измененным или удаленным.

Команда attrib.exe доступна в командной строке и позволит вам установить файл или каталог только для чтения. Более подробную информацию об этой команде можно найти здесь

И наоборот, вы можете сделать то же самое с помощью графического интерфейса, щелкнув правой кнопкой мыши файл или каталог, который вы хотите отметить только для чтения, выбрав свойства и отметив флажок «Только для чтения». Нажмите Apply/Ok, чтобы применить новый параметр к файлу или каталогу.

0

Разве невозможно ограничить доступ к файлу с помощью вкладки «Безопасность», если щелкнуть правой кнопкой мыши и перейти в «Свойства» для файла или папки?

Если у пользователя есть доступ администратора к ПК, то не позволит ли он удалить все остальные возможности что-либо делать с файлом / папкой?

При вводе текста я должен признать, что мой рабочий компьютер все еще работает на WinXP Pro, поэтому то, что я изложил выше, может быть недоступно больше - мне все еще не так комфортно с моей новой коробкой Win 8.1 Pro дома, как с годы работы с Win XP

-2

В некоторых случаях создание новой папки с именем файла может помочь. (Т.е. получаю ошибку при попытке открыть файл).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .