@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 |
|