标题: [文件操作] 请教批处理隐藏文件夹后如何才能不可删除 [打印本页]
作者: lxj 时间: 2008-10-25 11:04 标题: 请教批处理隐藏文件夹后如何才能不可删除
昨天在这里找了半天,找到一个加密文件夹的批处理,感觉很好用.但是,最后试出一个bug来,就是建成的文件夹为控制面板,但是控制面板里面没程序的时候是不可删除,一装进程序就能删除.不知为什么?有没有办法可以更改.
贴上昨天的批处理,谢谢各位指教:
- @echo off&title 文件夹加密&color 0f&mode con cols=30 lines=15
- set l1= ============================
- set l2= 编写: 野菜
- set l3= ----------------------------
- set l4= QQ:959212677
- set l5= ============================
- if exist 控制面板\ goto start
- md 控制面板
- attrib 控制面板 +s +h
- echo [.ShellClassInfo]>控制面板\desktop.ini
- echo CLSID={21EC2020-3AEA-1069-A2DD-08002B30309D}>>控制面板\desktop.ini
- attrib 控制面板\desktop.ini +s +h +r
- :once
- echo %l1%
- echo %l2%
- echo %l3%
- echo %l4%
- echo %l5%
- echo.
- echo 首次使用
- echo.
- goto pwd
- :pwd0
- cls
- echo 两次输入密码不一致,请重新输入
- echo.
- :pwd
- set /p pwd="请设置密码:"
- if '%pwd%'=='' goto pwd
- set /p pwd0="请再输一次:"
- if not '%pwd%'=='%pwd0%' goto pwd0
- echo %pwd%>控制面板\pwd.lnk
- attrib 控制面板\pwd.lnk +s +h
- echo.
- echo 密码设置成功
- ping 127.1 -n 3 >nul 2>nul
- md 控制面板\files..\
- goto start0
- :start
- if not exist 控制面板\pwd.lnk goto once
- for /f "tokens=*" %%a in (控制面板\pwd.lnk) do set mima=%%a
- echo %l1%
- echo %l2%
- echo %l3%
- echo %l4%
- echo %l5%
- set /p pass="请输入密码:"
- goto kaishihou
- :kaishi
- set /p pass="请输入密码:"
- :kaishihou
- if '%pass%'=='' goto kaishi
- if '%pass%'=='%mima%' goto start0
- cls
- echo 对不起,密码错误!请重新输入!
- goto kaishi
- :start0
- cls
- echo %l1%
- echo %l2%
- echo %l3%
- echo %l4%
- echo %l5%
- echo.
- echo 1、打开加密文件夹
- echo.
- echo 2、删除加密文件夹
- echo.
- set /p choose="请选择:"
- if '%choose%'=='' goto start0
- if %choose%==1 goto open
- if %choose%==2 goto 2
- :2
- cls
- echo 删除后原先加密文件夹中的文件也将被删除,请确定您已经备份过重要文件!!!
- echo.
- set /p del="确认删除? Y/N ?"
- if /i '%del%'=='y' (
- rd /q /s 控制面板
- echo 操作成功!
- ping 127.1 -n 3 >nul 2>nul
- exit
- )
- echo 已取消操作
- ping 127.1 -n 3 >nul 2>nul
- goto start0
- :open
- cd 控制面板
- start "" "%cd%\files..\"
复制代码
[ 本帖最后由 lxj 于 2008-10-25 12:17 编辑 ]
作者: Batcher 时间: 2008-10-25 11:09
本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;
作者: yslyxqysl 时间: 2008-10-25 11:16
http://www.bathome.net/viewthread.php?tid=404
作者: lxj 时间: 2008-10-25 12:15
已经修改好,谢谢两位,能否帮帮我?
作者: rat 时间: 2008-10-25 12:52
- @echo off&title 文件夹加密&color 0f&mode con cols=30 lines=15
- set l1= ============================
- set l2= 编写: 野菜
- set l3= ----------------------------
- set l4= QQ:959212677
- set l5= ============================
- if exist 控制面板\ goto start
- md 控制面板
- attrib 控制面板 +s +h
- echo [.ShellClassInfo]>控制面板\desktop.ini
- echo CLSID={21EC2020-3AEA-1069-A2DD-08002B30309D}>>控制面板\desktop.ini
- attrib 控制面板\desktop.ini +s +h +r
- :once
- echo %l1%
- echo %l2%
- echo %l3%
- echo %l4%
- echo %l5%
- echo.
- echo 首次使用
- echo.
- goto pwd
- :pwd0
- cls
- echo 两次输入密码不一致,请重新输入
- echo.
- :pwd
- set /p pwd="请设置密码:"
- if '%pwd%'=='' goto pwd
- set /p pwd0="请再输一次:"
- if not '%pwd%'=='%pwd0%' goto pwd0
- echo %pwd%>控制面板\pwd.lnk
- attrib 控制面板\pwd.lnk +s +h
- echo.
- echo 密码设置成功
- ping 127.1 -n 3 >nul 2>nul
- md 控制面板\files..\
- md 控制面板\bathome..\
- goto start0
- :start
- if not exist 控制面板\pwd.lnk goto once
- for /f "tokens=*" %%a in (控制面板\pwd.lnk) do set mima=%%a
- echo %l1%
- echo %l2%
- echo %l3%
- echo %l4%
- echo %l5%
- set /p pass="请输入密码:"
- goto kaishihou
- :kaishi
- set /p pass="请输入密码:"
- :kaishihou
- if '%pass%'=='' goto kaishi
- if '%pass%'=='%mima%' goto start0
- cls
- echo 对不起,密码错误!请重新输入!
- goto kaishi
- :start0
- cls
- echo %l1%
- echo %l2%
- echo %l3%
- echo %l4%
- echo %l5%
- echo.
- echo 1、打开加密文件夹
- echo.
- echo 2、删除加密文件夹
- echo.
- set /p choose="请选择:"
- if '%choose%'=='' goto start0
- if %choose%==1 goto open
- if %choose%==2 goto 2
- :2
- cls
- echo 删除后原先加密文件夹中的文件也将被删除,请确定您已经备份过重要文件!!!
- echo.
- set /p del="确认删除? Y/N ?"
- if /i '%del%'=='y' (
- rd /q /s 控制面板
- echo 操作成功!
- ping 127.1 -n 3 >nul 2>nul
- exit
- )
- echo 已取消操作
- ping 127.1 -n 3 >nul 2>nul
- goto start0
- :open
- cd 控制面板
- start "" "%cd%\files..\"
复制代码
作者: lxj 时间: 2008-10-25 13:40
谢谢版主,经测试后可行,
对比了一下,好像只多了一行:md 控制面板\bathome..\
这样就使里面放了文件就删除不了,能不能告诉一下是怎么回事吗?
作者: lxj 时间: 2008-10-25 14:51
已找到原因,请锁吧.谢谢解答.其实原理很简单,我一直以为应该是在控制面板下的files..文件夹里.但其实新建的那个文件夹并不在那,所以,有文件删不掉.
作者: rat 时间: 2008-10-25 15:15
很简单,现在已知“files..\”文件夹里放东西以后,“控制面板”文件夹可以删除,没放东西就不可以删除,即:
只要保证一个文件夹里有“以两个点为结尾的空的文件夹”就可以防止被删除。
很明显,\bathome..\就是一个这样的空文件夹。
打开“以两个点为结尾的空的文件夹”,如c盘下的“rat test..\”文件夹:
start "" "c:\rat test..\"
如果路径中没空格,如c:\test..\,直接用:start c:\test..\
注意,一定要写绝对路径和最后的“\”。
[ 本帖最后由 rat 于 2008-10-25 15:17 编辑 ]
作者: lxj 时间: 2008-10-25 15:32
版主,又发现一个问题,运行后,要是直接关掉,再运行,有时会提示密码错,type pwd.lnk后,提示echo处于关闭状态.如何解决.
作者: jellyhk 时间: 2008-10-25 21:51
我这里运行了下!没出现你出现的状况!
作者: sleiing 时间: 2009-8-8 18:33
我现在进不了,一直密码错误 !我开始设置的1中间文件夹打开后直接关掉了!就一直密码错误!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |