Olá amigos,
fazer isso sem a instalação de programas é quase impossível, então pesquisei, achei uma forma e melhorei, sei que ainda pode ficar melhor e irei melhorá-la mas já estou colocando aqui o script funcionando.
É um aquivo de lote (.bat) (batch)
O que ele faz?
Ele cria uma pasta chamada PRIVATE e altera os atributos desta pasta e de todos os aquivos contidos nela para:
OCULTO
ARQUIVO DE SISTEMA
SOMENTE LEITURA
BLOQUEIA A LEITURA E GRAVAÇÃO
e também faz a ordem inversa.
A senha este definida dentro do código como 123, ainda estou pensando em como fazer para criar um arquivo de senhas. (Se alguém já tiver uma solução para isso me avise)
Este código foi criado com o objetivo de que em uma mesma pasta vários usuários possam criar seus documentos porém estes documentos não podem ser vistos pelos demais usuários, todos os usuários usam o mesmo PC e a criação de usuários do windows foi descartada, pois muitas pessoas usam o mesmo PC.
Abaixo está a estrutura de diretório que eu criei, reparem que dentro de uma única pasta existem várias pastas de usuários e em cada uma delas deve ter o script instalado.
Tela inicial que cria a pasta PRIVATE ao executar pela primeira vez o script
Tela para bloquear a pasta PRIVATE
Tela para desbloquear a pasta PRIVATE
Vejam o código:
--------------------------------------------------------------------------------------------------------------------
cls
@ECHO Off
SetLocal EnableExtensions EnableDelayedExpansion
title Bloquear Acesso a Pasta!!!
if EXIST "Private_Lock" goto UNLOCK
if NOT EXIST Private goto MDLOCKER
:CONFIRM
color A
echo ##########################################################################
echo . .
echo . ---------------------------------------------------------------------- .
echo . .
echo . B L O Q U E A R P A S T A P R I V A T E .
echo . .
echo ##########################################################################
echo.
echo Tem certeza, que deseja bloquear a pasta PRIVATE? (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 Comando Invalido.
pause > nul
goto CONFIRM
:LOCK
ren Private "Private_Lock"
attrib +h +s +a +r /d /s "%cd%\Private_lock"
attrib +h +s +a +r /d /s "%cd%\Private_Lock\*.*"
goto End
:UNLOCK
cls
color E
echo ##########################################################################
echo . . echo . ---------------------------------------------------------------------- .
echo . .
echo . D E S B L O Q U E A R P A S T A P R I V A T E .
echo . .
echo ##########################################################################
echo.
echo Entre com a senha para desbloquear a pasta PRIVATE.
echo.
Set /P "=Senha: " < Nul
Call :PasswordInput
Goto :SENHA
:::::::::: ROTINA PARA TRANSFORMAR A SENHA EM "*" :::::::::::::::::
:PasswordInput
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&Goto :Eof
If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
Set "Line=!Line:~0,-1!"
)
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd
:::::::::: FIM DA ROTINA PARA \TRANSFORMAR A SENHA EM "*" :::::::::::::::::
:SENHA
if NOT %Line%== 123 goto FAIL:
attrib -r -s -a -h /d /s "%cd%\Private_lock"
attrib -r -s -a -h /d /s "%cd%\Private_lock\*.*"
ren "Private_Lock" Private
cls
goto End
:RELOCK
color c
echo Tentar Novamente? (Y/N)
set /p "cho="
if %cho%==Y goto UNLOCK
if %cho%==y goto UNLOCK
if %cho%==n goto END
if %cho%==N goto END
pause > nul
goto UNLOCK
:FAIL
cls
color c
echo Senha Invalida
goto RELOCK
:MDLOCKER
prompt 888888888 criando pasta 888888888888
md Private
color E
echo A Pasta PRIVATE Foi Criada Com Sucesso!!!
echo Avancar aperte ENTER!!!
pause > nul
cls
goto CONFIRM
:End
:ENTER
exit
Nenhum comentário :
Postar um comentário