首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

DIY发烧友-好工具自己做

2012-07-05 
DIY爱好者--好工具自己做echo 保护完成,删除原文件........del %userprofile%\桌面\Ready2Lock\*.*rd %

DIY爱好者--好工具自己做

echo 保护完成,删除原文件........
del "%userprofile%\桌面\Ready2Lock\*.*"
rd "%userprofile%\桌面\Ready2Lock"
echo 所有保护完成!
ping 127.0.0.1 -n 3 >nul
cls
goto start
rem ==========================存储部分结束=======================
rem
rem===========================读取数据部分=======================
:djm
echo.
echo 请输入密码:
set /p pass2=
if {%pass2%}=={} goto djm
if not exist c:\FileLocker..\%pass2%..\nul echo 发生错误或不存在保护文档 & goto djm
echo 开始读取被保护的数据.......
md "%userprofile%\桌面\Unlocked"
copy "c:\FileLocker..\%pass2%..\*.*" "%userprofile%\桌面\Unlocked"
echo 已经解密到桌面上的Unlocked文件夹内.........
ping 127.0.0.1 -n 3 >nul
goto start
rem ========================结束=============================
rem =========================退出============================
:quit
echo 感谢使用Windows文件保护专家 v1.0!
echo 按任意键退出本程序.
pause > nul
exit

===========================代码结束=============================

好了,现在穿插点小内容,有关这个程序的思路:大家都知道""这个符号在windows中是用来表示路径的分隔符,如:"c:\windows"就表示c盘下的windows文件夹。那么大家想过没有,如果一个文件夹的名字里包含这个符号,那会怎么样呢?系统会出错,所以在windows下建立的文件夹是没办法带有"",但是在CMD里用MD命令建立文件夹是没任何限制的,所以假设我们想在c盘下建立个特殊的文件夹,比方说:md c:\windows..\注意得在""前加两个".",回到windows中,会发现c盘里有个显示名字为"windows."的文件夹,但是打开之后却会跳入c:\windows的系统目录里(如果windows不存在的话,电脑就会显示没办法找到文件夹)。所以我们的文件放这里面是最安全的。但是我们该怎么放进去呢?还得回到dos下,使用copy命令复制进去: “copy c:\test.txt c:\windows..\”就完成了。但是随之又有个问题,别人只要用一个"copy c:\windows..\*.* c:"就可以把这个文件夹内的东西都复制出来了。所以我们的程序为了防止这一点,根据用户输入的密码在这个特殊文件夹内再建立个文件夹,文件夹的名字就是根据用户的密码所生成的,所以偷窃者想偷文件的话除非知道这个根据用户密码所生成的特殊文件夹的名字才能使用copy命令复制出来,否则dir,del,move等命令都是没办法威胁到被保护的文件。唯一能威胁到文件的方法,目前为止我能想到的也只有格式化硬盘了(只是我个人意见,也许还有别的方法我不知道,所以如果大家发现别的方法请务必告诉我,我好改进程序性能)
好了,大家都知道基本原理了,现在开始对程序的代码进行分析。
开头的一些什么title,color等命令昨天已经说过了,今天就不重复了,如果不会的朋友可以查看本系列的第一篇文章。
好了先出现第一句新命令是if 开头的那一句,if exist.......do.....表示一旦存在某个文件(要有详细路径),do表示任意一个命令,if还有很多用法,想了解的朋友大家可以在dos输入"if/?"查询所有用法,这一句是判断是否存在FileLocker..\这个特殊文件夹,但是if exist只判断文件的存在否,不判断文件夹,所以我们在FileLocker..\这个文件夹后加个nul,就能让if exist这个命令来判断是否存在文件夹了。后面接着的代码就是昨天说的能获取用户输入的代码。然后今天又加了点代码是对用户输入的不同数据进行判断来进行不同的动作,就是使用goto命令跳到每个动作的代码。“if /i a===b ”这是if命令的另一个用法:对于数据的判断,当满足2个数据一样时执行一条dos命令。进入动作的代码了,首先是加入文件夹这个动作,原理其实很简单:获取用户输入的密码,将密码的数据当作秘密文件夹的名字,然后为了安全起见,我在FileLocker..\这个文件夹里又根据用户密码建立了个特殊文件夹,就是密码后面加上".."再次建立特殊文件夹,彻底保护文件。
“文件夹建立”这个动作完成后来到“存储数据这个部分”,首先得先判断用户的密码对不对,判断的方法就是检测是否存在那个根据密码建立的文件夹,如果不存在也就说明密码不对,得重新输入。而后密码通过验证后就是将数据复制的过程,为了方便起见,我让程序在用户的桌面上建立了个名为Ready2Lock的临时文件夹,方便用户将需要保存的文件放入,但是鄙人天生比较愚笨,就是没办法将一个文件夹整个保护到特殊文件夹内,用户在往Ready2Lock里放文件的时候注意别将文件夹也放进去。然后用户放完之后按任意键后,程序自动开始保护文件,然后会删除桌面上的源文件,做完这一切,整个保护就完成了。最后进入读取数据部分,还是得先判断用户的密码,如果密码正确,程序才能正确地取出文件,否则就会失败。然后为了方便用户,程序在桌面上建立个名为Unlock的文件夹,解密出来的文件就会放在这里。呵呵,整个程序的代码就过了一遍了,大家是不是喜欢上了批处理了,^^

最后说点东西;本系列批处理的教程将分为3部分,分别为初级,中级和综合,所以下次的教程的程序将会十分庞大,可以透露点,下次的程序是自己用批处理写的windows优化大师(不知道是不是涉及版权问题^^),不过工作量相当的大,我现在目前还处于寻找资料和研究windows优化大师的工作原理过程中,所以估计得过一个相当长的时间才能推出最终内容,希望大家能够谅解。不过以后的时间我会时不时地提供些小程序,有可能就是windows优化大师的部分功能测试代码,希望大家能够喜欢,并帮忙测试,我在此先谢过了。

?


########################################################################
########################################################################

?

DIY爱好者-Windows文件保护专家 v1.0正式版

在发布正式版之前,先说几句:
首先感谢帮助我最大的朋友“猜猜鸟”,感谢你提供了很有用处的方法,现在终于可以完善这个工具。还有感谢“江山”提供了不少参考意见和信息,没有他们的帮助也就没有这个工具的今天。最后感谢那些一直支持我的朋友们,没有你们的支持,小弟也不敢拿出自己的作品也大家分享,谢谢支持^^


@echo off
rem Written by heroest
rem Feb 17th,2006
setlocal
color 0b
echo ===============================================================
echo.
echo Windows文件保护专家 v1.0
echo.
echo.
echo 说明:本程序可以有效的保护重要的文件不被删除或泄露。
echo 加入了删除文档的代码,可以删除那些被保护的文档
echo 版权没有,欢迎盗版!
echo ===============================================================
:start
echo.
echo 建立文件保护文件夹 c:\FileLocker
if not exist c:\FileLocker..\nul md c:\FileLocker..\echo 保护完成,删除原文件........
del "%userprofile%\桌面\Ready2Lock\*.*" /Q
rd "%userprofile%\桌面\Ready2Lock"
echo 所有保护完成!
ping 127.0.0.1 -n 3 >nul
cls
goto start
rem ==========================存储部分结束=======================
rem
rem ===========================读取数据部分======================
:djm
echo.
echo 准备读取保密文件...
echo 请输入密码:
set /p pass2=
if {%pass2%}=={} goto djm
if not exist c:\FileLocker..\%pass2%..\nul echo 发生错误或不存在保护文档 & goto djm
echo 开始读取被保护的数据.......
if not exist "%userprofile%\桌面\Unlocked\nul" md "%userprofile%\桌面\Unlocked"
copy "c:\FileLocker..\%pass2%..\*.*" "%userprofile%\桌面\Unlocked"
echo 已经解密到桌面上的Unlocked文件夹内.........
ping 127.0.0.1 -n 3 >nul
goto start
rem ========================读取数据部分结束=======================
rem
rem ========================删除目录部分===========================
rem 此部分特别感谢"猜猜鸟"教会了我新的知识,谢谢了!
rem 感谢"江山"的提供了宝贵的意见
rem 也感谢支持我的朋友们,没有你们的鼓励,小弟也不敢斗胆发表自己的作品
:sjm
echo.
echo.
echo 准备删除秘密文档.......
echo 请输入密码:
set /p pass2del=
if {%pass2del%}=={} goto sjm
echo 开始删除被保护文件夹
rmdir /s "c:\FileLocker..\%pass2del%.." /Q
echo 已经删除被保护文件.......
goto start
rem ============================删除部分结束======================
rem
rem ===================Del FileLocker==============================
:df
echo.
echo 请删除之前确认FileLocker里面没有任何秘密文档.(y/n)
set /p yesorno=
if /i %yesorno%==y goto start2del
if /i %yesorno%==n goto sjm
goto df
:start2del
echo 开始删除FileLocker..........
rd "c:\FileLocker.." >nul
if exist c:\FileLocker..\nul echo **删除失败,可能FileLocker里有别的秘密文档。**& goto fail
echo 成功删除!
:fail
ping 127.0.0.1 -n 3 >nul
goto start
rem ================Del Filelocker End====================
:quit
echo 感谢使用Windows文件保护专家 v1.0!
echo 按任意键退出本程序.
pause > nul
exit


热点排行