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.
Answer
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":
No comments:
Post a Comment