파일을 변경하거나 타사 도구를 사용하지 않고 Windows에서 파일을 잠그는 방법은 무엇입니까?


24

온보드 도구로 파일을 잠 그거나 덮어 쓸 수 없도록 파일을 잠글 수있는 방법이 있습니까?

복사 스크립트를 테스트 lock files temporarily하려면 스크립트에서 오류 처리를 확인 해야합니다 . XP까지 나는 debug.exe에 파일을로드하여 잠금을 사용했습니다.

Windows 7 이상에 방법이 있습니까?

편집
나는 이것을하는 프로그램이 있다는 것을 알고있다. 내 질문은 Windows에 내장 메커니즘이 있는지입니다. 때로는 PC에서 스크립트를 확인해야하며 새 프로그램을 설치하고 싶지 않습니다.

Edit2
여기에도 좋은 제안이 있습니다 : 의도적으로 파일을 독점적으로 잠그는 방법? 그러나 타사 도구가 필요하거나 파일이 잠기도록 변경해야합니다.


합니까 메모장 트릭 당신을위한 작업은?
nixda

1
@nixda 아니요. 파일을 덮어 씁니다. 현재 파일을 변경하지 않고 잠글 필요가 있습니다.
marsh-wiggle

내가 참조. 나는 가까운 투표를 철회
nixda

답변:


45

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
큰! 감사! 부끄러운 일로, 나는 powershell에서 개발하고 이것을 위해 .net 클래스 사용에 대해 생각하지 않았다고 고백해야합니다. [나는 더 이상 가지 않기를 바란다 :-)]
marsh-wiggle

1
좋은 대답입니다. 호기심를 들어, 다음의 받는 MSDN 링크 File::Open방법 호출 (특히, 마지막 인자의 매개 변수를 상세하게는 'None', 파일을 공유 감소 다른 스레드 / 프로세스와 -와 마찬가지로 규정은 읽기 / 쓰기에만 파일을 고정하기 위해 존재 또는 이들의 조합).
획기적인

1
@moab 파일이 닫히고 핸들이 끝에서 해제됩니다.
Dan

2
(가) 주 $host.UI.RawUI.ReadKey(...)ReadKey는 ISE 구현되지 않는 PowerShell을 ISE에 실패합니다. 해결 방법은 [void](Read-Host 'Press Enter to continue')입니다. 사용자가 키가 아닌 Enter 키를 눌러야하는 것과 정확히 동일하지는 않습니다. 그러나 대부분의 목적에 충분합니다. 해결 방법은이 블로그 게시물에서 나왔습니다 : jeffwouters.nl/index.php/2016/06/…
SimonTewsi

4

실제로 사용하지 않는 소프트웨어를 설치하는 것을 좋아하지 않기 때문에 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/에서 전체 게시물을 볼 수 있습니다 .


위의 솔루션과 같은 powershell을 좋아하지 않는 사람들에게 좋습니다
marsh-wiggle

0

읽기 전용으로 표시 할 수 없습니까? 이렇게하면 파일을 변경하거나 삭제할 수 없도록하여 파일을 효과적으로 "잠글"수 있습니다.

attrib.exe 명령은 명령 행에서 사용 가능하며 파일 또는 디렉토리를 읽기 전용으로 설정할 수 있습니다. 해당 명령에 대한 자세한 정보는 여기 에서 찾을 수 있습니다.

반대로, 읽기 전용으로 표시하려는 파일 또는 디렉토리를 마우스 오른쪽 단추로 클릭하고 특성을 선택하고 읽기 전용 상자를 선택하면 GUI를 통해 동일한 작업을 수행 할 수 있습니다. 적용 / 확인을 클릭 한 다음 새 설정을 파일 또는 디렉토리에 적용합니다.


3
읽기 전용 속성은 수정이 불가능하지만 삭제는 불가능합니다.
ComFreek

0

마우스 오른쪽 버튼을 클릭하고 파일 또는 폴더의 속성으로 이동하면 보안 탭을 사용하여 파일에 대한 액세스 기능을 제한 할 수 없습니까?

사용자에게 PC에 대한 관리자 액세스 권한이 있으면 파일 / 폴더로 수행 할 수있는 다른 모든 기능을 제거 할 수 없습니까?

입력하는 동안 내 업무용 PC가 여전히 WinXP Pro에 있다는 점을 인정해야하므로 위에서 언급 한 내용이 더 이상 제공되지 않을 수 있습니다. 수년간 Win XP 작업


사용 가능한 NTFS 권한 중 어느 것도 잠긴 파일의 동작을 모방하지 않습니다. 가장 가까운 것은 파일을 읽기 전용으로 만드는 것이지만 OP가 해당 옵션을 인식하고 적절한 이유로 파일을 잠그는 것을 요구하고 있다는 것을 확신 할 수 있습니다.
나는 말한다 Reinstate Monica

-2

일부 시나리오에서는 파일 이름으로 새 폴더를 작성하면 작업이 수행 될 수 있습니다. (파일을 여는 중 오류가 발생했습니다).


이것은 실제로 주석이며 원래 질문에 대한 답변이 아닙니다 .
DavidPostill

나 에게이 페이지로 연결되는 작업의 대답이었습니다. 당신 같은 사람들 때문에 누군가 비슷한 작업에서 그것을 찾지 못할 것입니다.
noonex

3
OP가 기존 파일 을 잠그는 방법을 묻고있었습니다 . 이름이 같은 폴더를 만들 수 없습니다. "하위 디렉토리 또는 파일 xxx가 이미 있습니다"이므로 질문의 문제에 대한 답변을 적용 할 수 없습니다.
DavidPostill

많은 경우 "기존 파일 잠금"이 필요하므로 응용 프로그램에서 파일을 수정하거나 열려고 할 때 오류가 발생합니다. 나는 지금 명백한 것들에 대한 설명을 중단 할 것입니다. 좋은 하루 되세요.
noonex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.