分享

用批处理建立秘密文件夹,防止误删除[原代码]

 yyy2k3 2012-03-27
@echo off & setlocal EnableDelayedExpansion
:start
cls
echo  ===============================================================
echo                             说  明
echo     使用此批处理可以创建特殊文件夹,使文件夹通过常规的方法无法
echo   浏览、删除;以实现简单加密及防止重要资料误删除。
echo   使用方法:
echo      1.直接拖动文件夹到该批处理文件图标上。实现加密、删除及浏览
echo      2.运行该批处理,根据菜单选择操作.
echo      3.将批处理添加到"发送到"菜单,直接在文件夹点右键"发送到"实
echo    现操作
echo.    
echo     文件名:encrypt.exe                            0oAdaio0
echo     E-mail:zhllangzi@163.com                     2010/05/13
echo  ===============================================================
echo.
set dir1=%~1
if "%dir1%"=="" goto menu
if "%dir1:~-1%"=="." goto 2
cd /d %dir1%
if errorlevel 1 goto 3
cd..
call :getdir
echo 正在加密"%dirname%"文件夹...
ren "%dir1%" "%dirname%../"
echo 操作完成,按任意键退出...
pause >nul
goto end
:2
echo      1.浏览"%dir1%"文件夹
echo.
echo      2.删除"%dir1%"文件夹
echo.
echo      3.解密"%dir1%"文件夹
echo.
echo      4.退出
echo.
set ch1=
set /p ch1=请选择:
if /i "%ch1%"=="1" goto topen
if /i "%ch1%"=="2" goto tdel
if /i "%ch1%"=="3" goto exp
if /i "%ch1%"=="4" goto end
echo 选择错误!按任意键请重新选择!
pause >nul
goto 2
:topen
explorer "%dir1%.\\"
goto end
:tdel
echo 正在删除"%dir1%"文件夹
set ch2=
set /p ch2=确认删除?[y|n]
if /i "%ch2%"=="y" goto ydel
if /i "%ch2%"=="n" goto end
echo 选择错误!按任意键请重新选择!
pause >nul
goto tdel
:ydel
echo 正在删除...
rd "%dir1%.\\" /s /q
echo 已成功删除"%dir1%"文件夹,按任意键退出.
pause >nul
goto end
:exp
echo 正在解密...
call :getdir
if exist "%temp%\\~temp.txt" del "%temp%\\~temp.txt"
dir "%dir2%" /x | find /i "%dirname%" >"%temp%\\~temp.txt"
for /f "tokens=4 delims= " %%i in (%temp%\\~temp.txt) do (
ren "%dir2%%%i" "%dirname:~0,-1%"
)
del "%temp%\\~temp.txt"
echo 已完成!按任意键退出!
pause >nul
goto end
:3
echo 出错!"%dir1%"不是有效的文件夹.
echo 按任意键退出!
pause >nul
goto end
:menu
echo          1.创建加密文件夹
echo.
echo          2.浏览文件夹
echo.
echo          3.删除文件夹
echo.
if not exist "%userprofile%\\sendto\\加密文件夹.exe" (
echo          4.添加到"发送到"菜单
) else (
echo          4.从"发送到"菜单删除
)
echo.
echo          5.退出
echo.
set ch3=
set /p ch3=请选择:
if /i "%ch3%"=="1" goto crt
if /i "%ch3%"=="2" goto topn
if /i "%ch3%"=="3" goto 2del
if /i "%ch3%"=="4" goto sdt
if /i "%ch3%"=="5" goto end
echo 选择错误!按任意键请重新选择!
pause >nul
goto menu
:crt
call :getname
echo 正在创建"%dirnm%"文件夹...
md "%dirnm%"..\\
echo 创建成功.
:isop
set isopen=
set /p isopen=是否现在打开(1.打开,2.返回,3.退出):
if /i "%isopen%"=="1" (
set dir1=%dirnm%.
goto topen
)
if /i "%isopen%"=="2" goto start
if /i "%isopen%"=="3" goto end
echo 选择错误!按任意键请重新选择!
pause >nul
goto isop
:topn
call :getname
set dir1=%dirnm%
goto topen
:2del
call :getname
set dir1=%dirnm%
goto ydel
:sdt
if not exist "%userprofile%\\sendto\\加密文件夹.exe" (
echo 正在向"发送到"菜单添加"加密文件夹.exe"项...
copy encrypt.exe "%userprofile%\\sendto\\加密文件夹.exe"
echo 添加成功!按任意键返回!
pause >nul
goto start
) else (
echo 正在从"发送到"菜单删除"加密文件夹.exe"项...
del "%userprofile%\\sendto\\加密文件夹.exe" /a /f /q
echo 已经删除!按任意键返回!
pause >nul
goto start
)
:getname
set dirnm=
set /p dirnm=请输入文件夹名称:
if "%dirnm%"=="" goto getname
goto :EOF
:getdir
for %%i in ("%dir1%") do set dir2=%%~dpi
set dirname=!dir1:%dir2%=!
set dirname=%dirname:\\=%
goto :EOF
:end

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多