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":

enter image description here


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/