How to lock a file in Windows without changing it or using third party tools?
Is there a way to lock a file with on-board tools so it can't be deleted or overwritten?
For testing of copy scripts I need to lock files temporarily
to check the error handling in the scripts. Till XP I used loading a file in debug.exe to lock it.
Is there a way in Windows 7 (and later)?
Edit
I know that there are programs doing this. My question is if there is a built in mechanism in windows. Sometimes I have to check a script on a PC and don't want to install new programs for that.
Edit2
Here are also good suggestions: How to purposefully exclusively lock a file?, which, however, need 3rd party tools or change the file to be locked.
I think PowerShell is probably the neatest way to accomplish this. Something like the following:
#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()
While paused, the above script causes the following prompt when attempting to open up "myfile.txt":
Since I don't like installing software that I won't actually use, I found this jewel of a 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)"
All credit goes to Torgeir Bakken, you can see the full post here: http://www.pcreview.co.uk/threads/how-to-lock-files.1518829/