好工具自己做之极限作品.doc_第1页
好工具自己做之极限作品.doc_第2页
好工具自己做之极限作品.doc_第3页
好工具自己做之极限作品.doc_第4页
好工具自己做之极限作品.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DIY爱好者-好工具自己做之批处理的极限应用(1)最近无聊开始研究一种很古老的在dos下无处不在的好东西批处理程序。其实也不能算是一种程序,只是将DOS命令写在一个后缀名为.bat(2k/xp中也可以用.cmd)的文件,可以将预先写入的dos命令一起执行,当时是个超级有用的好东东,可以把很多需要一起来执行的命令简化成一条,还有很多意想不到的功能。不过随着windows这种图形界面的东西出现后,批处理就实在没什么优势了,因为使用起来太不方便,每次用的时候都进入dos界面来运行,任何参数得在dos里跟在程序名后输入,所以很不方便,以至于现在几乎没人用,怀着化废为宝的原则,我开始了对于批处理的研究。最近才猛然发觉,在windows下,批处理又有它所发挥的余地,而且它有了很多新的优势是其他编程语言没法比较的。1.编写工具:无论是写字扳,word,甚至notepad也可以编写,而且不需要编译,改个后缀名直接就能用了2.编写简单:因为所有的代码都只是windows内带的命令,没有严格的语法要求,适合像我这种电脑初学者使用,一本dos书就够用了。3.功能强大;注册表,文件,服务几乎windows的各个方面都可以用批处理来操作;没有做不到,只有想不到!4.在2k/xp中可以将批处理可交互的界面,不需要进入dos界面费力的输入命令参数,在windows中打开直接就能用了恩,大概以上的种种优势已经够让人心动了,那么今天先来讲点基本的。首先教大家学批处理的好方法,在cmd中输入 “命令/?”可以显示这条命令的详细使用方法。例如:输入“copy/?”我们可以得知以下内容: 将一份或多份文件复制到另一个位置。 COPY /D /V /N /Y | /-Y /Z /A | /B source /A | /B+ source /A | /B + . destination /A | /B source 指定要复制的文件。/A 表示一个 ASCII 文本文件。/B 表示一个二进位文件。/D 允许解密要创建的目标文件destination 为新文件指定目录和/或文件名。/V 验证新文件写入是否正确。/N 复制带有非 8dot3 名称的文件时,尽可能使用短文件名。/Y 不使用确认是否要改写现有目标文件的提示。/-Y 使用确认是否要改写现有目标文件的提示。/Z 用可重新启动模式复制已联网的文件。 命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。这可能会被命令行上的 /-Y 替代。除非 COPY命令是在一个批文件脚本中执行的,默认值应为在改写时进行提示。 要附加文件,请为目标指定一个文件,为源指定数个文件(用通配符或 file1+file2+file3 格式)。 呵呵,很详细吧。恩,先介绍点dos下基础的东西。首先给个原代码先(很基础的,一个可以修改本机网站地址和静态ip地址的绑定): echo offcolor 0bsetlocaltitle HostsHack v1.0rem Written by Kakashirem Feb 16th, 2006echo =echo HostsHack v1.1echo.echo.echo 注:修改hosts文件可以达到屏蔽某些网站的功能echo 版权没有,欢迎盗版!echo =echo.:startecho 现在开始分析%systemroot%system32driversetc下系统原有hosts文件.echo 你现在拥有的ip绑定有:echo.echo *more +18 %systemroot%system32driversetchostsecho 完成!ping 127.0.0.1 -n 3 nulclsgoto start 好了,是不是看得有点头晕呢,不怕,慢慢来,一行一行解释:echo off 这句的意思是将echo关闭,也就是让批处理什么都不显示,而前加个符号表示连echo off这句命令也不显示,一开始就关闭批处理的显示有很多好处:一方面可以让程序美观简洁,二来可以控制程序显示数据,把需要的数据用命令显示在桌面上让用户能看到,不至于被满屏幕的东西吓倒。color 这条命令是用来控制批处理的美观的,格式如下:color bf (b是背景颜色,f是前台(字体)颜色)0 = 黑色 8 = 灰色1 = 蓝色 9 = 淡蓝色2 = 绿色 a = 淡绿色3 = 浅绿色 b = 淡浅绿色4 = 红色 c = 淡红色5 = 紫色 d = 淡紫色大家可以根据自己的喜好修改(本人推荐: color 0b)title:这条命令的作用就是修改标题栏的文字,美观而已。使用格式 title “任何你喜欢的文字”rem:表示解释说明,以rem 开头的这一行都算作解释,不会被程序执行。echo “文字”:负责显示数据,比方说echo 你好这条命令运行后屏幕上就会出现“你好”二字。而echo.表示输出一个回车,也就是空一行。开始进入重点了::start 这个命令表示建立一个名字为start的跳转点,前面的冒号说明这个start是个跳转点,以后程序只要用个goto start程序就跳回来了。下面这里大家跳过几行,能看到这样一句代码“echo 现在开始分析 %systemroot%system32driversetc下系统原有hosts文件.”%systemroot%表示的是一个名字为systemroot变量,它所带的值就是windows系统目录的路径,这是个系统变量,大家可以在cmd中输入set查询所有变量。好接着看了more +18 %systemroot%system32driversetchosts :这段代码比较复杂,首先表示追加,“”表示重新写,会删除原来的内容,然后echo 两个变量显示到屏幕上,现在加个重定向到文件,就追加到原来的文件咯,最后那个ping 127.0.0.1 -n 3就是表示要延时3秒,加个nul,nul表示没有,重定向到没有就是不显示的意思咯。终于把程序的大致内容讲了一遍,有兴趣的话,大家可以自己来学习一下,看不懂的朋友可以直接将程序代码复制下来,写成bat文件自己先看看。大家也可以发挥想象自己来写点东西分享下,我也乐意将自己的新作品分享个大家。 #DIY爱好者-好工具自己做之批处理的极限应用(2)昨天的那个批处理只是大致介绍了一些批处理的基本运用:echo off, 重定向等等只是点,可能刚开始看有点累,多看多实践就好了。推荐一个学习方法:将部分关键代码删除,看看程序会出现什么错误,然后就能比较快地理解程序运行的原理。好了今天就先给出一个新的代码(比较头大的,我也整了好久了,才憋出这个程序,做梦的时候都在想,但还是可能会有点问题,所以这只是个测试版本,大家如果发先程序有问题的话请跟贴告诉我,这个测试2版本是我目前为止未发现BUG的版本,但没办法保证有什么我没想到的问题,所以欢迎大家指出)注意:下面的测试版本可能无法在英文版的xp上运行,我的测试环境:简体中文xp+sp2环境下测试通过!不过由于程序的工作原理涉及windows的bug,所以我不能保证能100%能使用,不过我电脑是属于主流配置,而且补丁也打得很勤快,所以我想大多数用户还是能够使用的,如果有不能用的话,请告诉我你的电脑的配置情况。 =代码开始= echo offrem Written by heroestrem Feb 17th,2006setlocalcolor 0becho =echo.echo Windows文件保护专家 测试版2echo.echo.echo 说明:本程序可以有效的保护重要的文件不被删除或泄露。echo 版权没有,欢迎盗版!echo =:startecho.echo 建立文件保护文件夹 c:FileLockerif not exist c:FileLocker.nul md c:FileLocker. echo 欢迎使用windwos保护专家 v1.0,请选择选项(1,2,3,q);echo 1.读取加密的文档echo 2.存储保密文档echo 3.建立秘密存储文档echo q.推出set /p choice=if %choice%= goto startif /i %choice%=1 goto djmif /i %choice%=2 goto cjmif /i %choice%=3 goto jjmif /i %choice%=q goto quitgoto startrem=加入秘密文件夹=:jjmecho.echo 请输入密码:set /p pass2c=if %pass2c%= goto jjmecho 开始根据密码建立保密文件夹.md c:FileLocker.%pass2c%.echo 成功建立了保护文件夹!echo.goto startrem=“加入”部分结束=remrem=存储数据部分=:cjmecho.echo 请输入密码:set /p pass=if %pass%= goto cjmif exist c:FileLocker.%pass%.nul goto noerrorecho 发生错误,未发现已建立加密保护文件夹!goto start:noerrormd %userprofile%桌面Ready2Lockecho 请将你需要保护的文件复制到桌面上的Ready2Lock文件夹内(被保存的文件不能含有文件夹)echo 将文件放入Ready2Lock后按任意键开始保护文件.pause nulecho 开始保护到C:FileLocker文件夹内.copy %userprofile%桌面Ready2Lock*.* c:FileLocker.%pass%.echo 保护完成,删除原文件.del %userprofile%桌面Ready2Lock*.*rd %userprofile%桌面Ready2Lockecho 所有保护完成!ping 127.0.0.1 -n 3 nulclsgoto startrem =存储部分结束=remrem=读取数据部分=:djmecho.echo 请输入密码:set /p pass2=if %pass2%= goto djmif not exist c:FileLocker.%pass2%.nul echo 发生错误或不存在保护文档 & goto djmecho 开始读取被保护的数据.md %userprofile%桌面Unlockedcopy c:FileLocker.%pass2%.*.* %userprofile%桌面Unlockedecho 已经解密到桌面上的Unlocked文件夹内.ping 127.0.0.1 -n 3 nulgoto startrem =结束=rem =退出=:quitecho 感谢使用Windows文件保护专家 v1.0!echo 按任意键退出本程序.pause nulexit =代码结束= 好了,现在穿插点小内容,有关这个程序的思路:大家都知道这个符号在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 offrem Written by heroestrem Feb 17th,2006setlocalcolor 0becho =echo.echo Windows文件保护专家 v1.0echo.echo.echo 说明:本程序可以有效的保护重要的文件不被删除或泄露。echo 加入了删除文档的代码,可以删除那些被保护的文档echo 版权没有,欢迎盗版!echo =:startecho.echo 建立文件保护文件夹 c:FileLockerif not exist c:FileLocker.nul md c:FileLocker. echo 欢迎使用windwos保护专家 v1.0,请选择选项(1,2,3,4,5,q);echo 1.读取加密的文档echo 2.存储保密文档echo 3.建立秘密存储文档echo 4.删除保密文档echo 5.删除FileLockerecho q.推出echo.set /p choice=if %choice%= goto startif /i %choice%=1 goto djmif /i %choice%=2 goto cjmif /i %choice%=3 goto jjmif /i %choice%=4 goto sjmif /i %choice%=5 goto dfif /i %choice%=q goto quitgoto startrem=加入秘密文件夹=:jjmecho.echo 准备建立秘密文件夹.echo 请输入密码:set /p pass2c=if %pass2c%= goto jjmecho 开始根据密码建立保密文件夹.md c:FileLocker.%pass2c%.echo 建立了保护文件夹!echo.goto startrem =“加入”部分结束=remrem =存储数据部分=:cjmecho.echo 准备存储保密档案.echo 请输入密码:set /p pass=if %pass%= goto cjmif exist c:FileLocker.%pass%.nul goto noerrorecho 发生错误,未发现建立加密保护文件夹!goto start:noerrormd %userprofile%桌面Ready2Lockecho 请将你需要保护的文件复制到桌面上的Ready2Lock文件夹内(被保存的文件不能含有文件夹)echo 注意:开始保护后会删除原文件!echo 按任意键开始保护文件.pause nulecho 开始保护到C:FileLocker文件夹内.copy %userprofile%桌面Ready2Lock*.* c:FileLocker.%pass%.echo 保护完成,删除原文件.del %userprofile%桌面Ready2Lock*.* /Qrd %userprofile%桌面Ready2Lockecho 所有保护完成!ping 127.0.0.1 -n 3 nulclsgoto startrem =存储部分结束=remrem =读取数据部分=:djmecho.echo 准备读取保密文件.echo 请输入密码:set /p pass2=if %pass2%= goto djmif not exist c:FileLocker.%pass2%.nul echo 发生错误或不存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论