有没有办法用板载工具锁定文件以使其无法被删除或覆盖?
为了测试复制脚本,我需要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
在某些情况下,创建以文件名命名的新文件夹可能会完成这项工作。(即尝试打开文件时出现错误)。