如何在 Windows 中锁定文件而不更改它或使用第三方工具?

如何在 Windows 中锁定文件而不更改它或使用第三方工具?

有没有办法用板载工具锁定文件以使其无法被删除或覆盖?

为了测试复制脚本,我需要lock files temporarily检查脚本中的错误处理。直到 XP 我都使用在 debug.exe 中加载文件来锁定它。

在 Windows 7 (及更高版本) 中有没有办法?

编辑
我知道有些程序可以做到这一点。我的问题是 Windows 中是否有内置机制。有时我必须在 PC 上检查脚本,但又不想为此安装新程序。

編輯2
这里也有一些很好的建议:如何有目的地独占锁定一个文件?,但是,这需要第三方工具或更改要锁定的文件。

答案1

我认为 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”时会出现以下提示:

在此处输入图片描述

答案2

因为我不喜欢安装那些我实际上不会使用的软件,所以我发现了这个 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)"

所有荣誉都归于 Torgeir Bakken,你可以在这里看到完整的帖子: http://www.pcreview.co.uk/threads/how-to-lock-files.1518829/

答案3

您不能将其标记为只读吗?这将有效地“锁定”文件,不允许更改或删除它。

attrib.exe 命令可在命令行中使用,可让您将文件或目录设置为只读。有关该命令的更多信息,请参见这里

相反,您可以通过 GUI 执行相同的操作,方法是右键单击要标记为只读的文件或目录,选择属性,然后勾选只读框。单击应用/确定,然后将新设置应用于文件或目录。

答案4

在某些情况下,创建以文件名命名的新文件夹可能会完成这项工作。(即尝试打开文件时出现错误)。

相关内容