我有一个包含数据的文件夹,我想隐藏这个文件夹。我设法通过锁定来做到这一点,但随后失去了对数据的访问权限。数据需要可供程序/应用程序访问,但不能供用户打开、更改或删除。我希望我解释得正确。
答案1
我想把这个问题放在这里,因为我的问题已经被 Stack Exchange 之外的另一个人回答了。我问他是否介意,他的评论是让所有人知道知识,即使他们不理解)他一定是在说我。
@echo off title 锁定数据文件夹设置 _folder="C:\Users???????????????\This Folder" (输入文件夹的完整路径)
dir /a:h %_folder%>nul 2>nul 如果 %errorlevel%==0 转到 PASS1
dir /a:s %_folder%>nul 2>nul 如果 %errorlevel%==0 转到 PASS1
:CONFIRM echo 您是否要锁定私人文件夹?![Y/N] set/p "cho=>" if %cho%==Y goto LOCK if %cho%==y goto LOCK if %cho%==n goto end if %cho%==N goto end echo 错误!错误答案,请输入 [Y/N] goto CONFIRM
:LOCK attrib +h +s %_folder% echo 文件夹成功锁定... pause goto end
:PASS1 设置“psCommand=powershell -Command“$pword = read-host‘输入 PIN!’-AsSecureString;^ $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^ [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)”” for /f“usebackq delims=”%%p in ( %psCommand%
) do 设置密码=%%p 如果没有“%password%”==“此处输入密码”,则转到 FAIL1 attrib -s -h %_folder% 转到 EXP
:PASS2 设置“psCommand=powershell -Command“$pword = read-host'输入 PIN 码!'-AsSecureString;^ $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^ [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)”” for /f“usebackq delims=”%%p in ( %psCommand%
) do 设置密码=%%p if NOT“%password%”==“此处输入密码” goto FAIL2 attrib -s -h %_folder% goto EXP
:PASS3 设置“psCommand=powershell -Command“$pword = read-host'输入 PIN!'-AsSecureString;^ $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^ [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)”” for /f“usebackq delims=”%%p in ( %psCommand%
) do 设置密码=%%p if NOT“%password%”==“此处输入密码”转到 FAIL3 attrib -s -h %_folder%
:EXP echo 文件夹解锁成功,是否查看? [Y/N] set/p "tuju=>" if %tuju%==Y goto BUKA if %tuju%==y goto BUKA if %tuju%==n goto end if %tuju%==N goto end echo 错误!选择错误,当 [Y/N] goto EXP
:BUKA echo 转到文件夹... 暂停 启动资源管理器 %_folder% 转到结束
:FAIL1 echo PIN 错误! echo 再试一次,剩余 2 次 goto PASS2
:FAIL2 echo PIN 错误! echo 再试一次! 剩余 1 个 goto PASS3
:FAIL3 echo PIN 错误! echo 设备将重新启动!
:PIL set/p "rst=自动重启?[Y/N]" 如果 %rst%==Y 则转到 RST 如果 %rst%==y 则转到 RST 如果 %rst%==N 则转到 MNL 如果 %rst%==n 则转到 MNL echo 错误!选择错误,请输入 [Y/N] 转到 PIL
:结尾