收藏 分享(赏)

BAT、CMD脚本的编写与实际应用.doc

上传人:j35w19 文档编号:8733768 上传时间:2019-07-09 格式:DOC 页数:24 大小:67.50KB
下载 相关 举报
BAT、CMD脚本的编写与实际应用.doc_第1页
第1页 / 共24页
BAT、CMD脚本的编写与实际应用.doc_第2页
第2页 / 共24页
BAT、CMD脚本的编写与实际应用.doc_第3页
第3页 / 共24页
BAT、CMD脚本的编写与实际应用.doc_第4页
第4页 / 共24页
BAT、CMD脚本的编写与实际应用.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、BAT、CMD 脚本的编写与实际应用BAT、CMD 脚本的编写与实际应用在微软官方的定义中,BAT 属于批处理脚本(可以运行在DOS、WINDOWS 下) ,是用来进行简化平时操作的批量化集成文件。而 CMD,则是只能运行在 NT 系统下的批处理文件,其功能与 BAT 是一样的。从早期的 BAT 开始,该文件就为大家提供了方便,并在 WINDOWS 出现后,它的能力可以说是万能的。从最基础的启动盘的引导,到注册表,甚至系统服务的操作,BAT 与 CMD 都可以胜任。而且由于它简便的编写与通用性,很快就布满整个世界。本文将简单介绍 BAT 与 CMD 脚本的编写过程,因为在下水平不高,所以如有错

2、误欢迎指出!一、BAT 与 CMD 中的部分参数1、定义文件夹的参数目前我能够搜集到并可以给出意思的通用系统参数如下(不包括后边的解释部分):%windir% 操作系统文件夹,一般为 C:下的 WINDOWS 文件夹%sys% 系统根目录,也就是 C:盘目录%programfiles% Program Files 目录,安装程序通常都安装在这个目录下%systemdrive% 操作系统所在磁盘,与%sys%属于同一目录%systemroot% 操作系统文件夹,一般为 C:下的 WINDOWS 文件夹%InfDir% 系统根目录,也就是 C:盘目录%TEMP% 当前用户的临时目录,一般是 C:D

3、ocuments and Settings用户名Local SettingsTemp目录2、基础操作参数(可以在 CMD 命令行模式中输入 HELP 获得)ASSOC 显示或修改文件扩展名关联。AT 计划在计算机上运行的命令和程序。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式 CTRL+C 检查。CACLS 显示或修改文件的访问控制列表(ACLs)。CALL 从另一个批处理程序调用这一个。CD 显示当前目录的名称或将其更改。CHCP 显示或设置活动代码页数。CHDIR 显示当前目录的名称或将其更改。CHKDSK 检查磁盘并显示状态报告。CHKNTFS 显示或修改启动时间磁盘检

4、查。CLS 清除屏幕。CMD 打开另一个 Windows 命令解释程序窗口。COLOR 设置默认控制台前景和背景颜色。COMP 比较两个或两套文件的内容。COMPACT 显示或更改 NTFS 分区上文件的压缩。CONVERT 将 FAT 卷转换成 NTFS。您不能转换当前驱动器。COPY 将至少一个文件复制到另一个位置。DATE 显示或设置日期。DEL 删除至少一个文件。DIR 显示一个目录中的文件和子目录。DISKCOMP 比较两个软盘的内容。DISKCOPY 将一个软盘的内容复制到另一个软盘。DOSKEY 编辑命令行、调用 Windows 命令并创建宏。ECHO 显示消息,或将命令回显打开

5、或关上。ENDLOCAL 结束批文件中环境更改的本地化。ERASE 删除至少一个文件。EXIT 退出 CMD.EXE 程序(命令解释程序)。FC 比较两个或两套文件,并显示不同处。FIND 在文件中搜索文字字符串。FINDSTR 在文件中搜索字符串。FOR 为一套文件中的每个文件运行一个指定的命令。FORMAT 格式化磁盘,以便跟 Windows 使用。FTYPE 显示或修改用于文件扩展名关联的文件类型。GOTO 将 Windows 命令解释程序指向批处理程序中某个标明的行。GRAFTABL 启用 Windows 来以图像模式显示扩展字符集。HELP 提供 Windows 命令的帮助信息。IF

6、 执行批处理程序中的条件性处理。LABEL 创建、更改或删除磁盘的卷标。MD 创建目录。MKDIR 创建目录。MODE 配置系统设备。MORE 一次显示一个结果屏幕。MOVE 将文件从一个目录移到另一个目录。PATH 显示或设置可执行文件的搜索路径。PAUSE 暂停批文件的处理并显示消息。POPD 还原 PUSHD 保存的当前目录的上一个值。PRINT 打印文本文件。PROMPT 更改 Windows 命令提示符。PUSHD 保存当前目录,然后对其进行更改。RD 删除目录。RECOVER 从有问题的磁盘恢复可读信息。REM 记录批文件或 CONFIG.SYS 中的注释。REN 重命名文件。RE

7、NAME 重命名文件。REPLACE 替换文件。RMDIR 删除目录。SET 显示、设置或删除 Windows 环境变量。SETLOCAL 开始批文件中环境更改的本地化。SHIFT 更换批文件中可替换参数的位置。SORT 对输入进行分类。START 启动另一个窗口来运行指定的程序或命令。SUBST 将路径跟一个驱动器号关联。TIME 显示或设置系统时间。TITLE 设置 CMD.EXE 会话的窗口标题。TREE 以图形模式显示驱动器或路径的目录结构。TYPE 显示文本文件的内容。VER 显示 Windows 版本。VERIFY 告诉 Windows 是否验证文件是否已正确写入磁盘。VOL 显示

8、磁盘卷标和序列号。XCOPY 复制文件和目录树。3、扩展程序参数的部分参数(考虑到部分参数很危险,所以这里不提供)cipher 显示或更改 NTFS 分区上的目录(文件)的加密defrag 启动磁盘碎片整理程序edit 启动 DOS 下的文本编辑程序,在 XP 中也有保留expand WINDOWS 中自带的解压程序,可以把安装盘中文件名以_结尾的文件解压,NT 系列的安装就是在 DOS 下用这个对文件进行解压后进行排序安装的EXTRACT 或 extrac32 对 CAB 文件进行解压缩的程序,现在都用 WINRAR,所以这个功能没什么保留价值了makecab 制作 CAB 压缩包的程序,对

9、启动盘的制作倒很有用处msg 可以将消息发送给同网用户的程序,格式是MSG 对方机器名 信息(不包括中括号)ping 可以检测网络的运行状态的程序,从 WINDOWS 时代开始就有了proxycfg 设置代理用的程序regsvr32 服务注册程序,一般是插件的注册,也可以是解码器reg 或 regedit 注册表操作程序,有时候在 BAT、CMD 脚本中可以用这个参数进行注册表的修改操作shutdown 关机程序,可以在一定范围内控制一台或者一个局域网里所有机器的关机时间等systeminfo 查看系统当前配置情况的参数,也可以显示出运行时间等TASKKILL 进程删除程序,这个可以关闭至少一

10、个进程tasklist 查看当前进程列表的程序二、制作带向导功能的特殊结构脚本看到标题大家可能会有点郁闷:BAT、CMD 脚本也可以实现向导功能?很荣幸的告诉大家,是的。BAT、CMD 脚本不但可以实现脚本的向导功能,而且还可以结合大量的参数,组合成一个只需要不到 100KB就可以通吃所有系统的工具包!本介绍部分可以配合“结合 Universal Extractor 进行简单软件的绿化制作”所写的制作过程进行实况编写,不过限于篇幅关系,这里只对带有向导的 BAT、CMD 脚本进行解析。首先让我们看一个简单的不能再简单的例子(后边标注部分在实际应用中是不会写进脚本的)echo off 隐藏操作过

11、程,不对下边的操作进行显示cls 清除之前屏幕上的所有字符title 智能 ABC 输入法 5.0 重封装版 BY 龙梦秋 指定当前命令行窗口标题COLOR 1F 指定操作界面颜色,可以在命令行中输入 COLOR /? 来查看具体配置参数echo *= 在这里可以写入自己需要显示在命令行窗口中的内容,甚至可以做成由字符组成的图形界面echo.echo 欢迎安装由偶重新封包的“智能 ABC 输入法 5.0 重封装版“!echo 偶特意重新封包 5.0 版是因为很多 XP 简化版以及 SP2 的修改过echo 的版本都把系统里的智能 ABC 版本升级到了 5.2,这让一些习惯了echo 5.0 版

12、本的用户(包括偶)变得无法适应。echo 为了让包括偶在内的所有 5.0 用户可以回到原来的输入法环echo 境,经过偶一番琢磨(本来打算写程序来安装,可惜偶是编程白echo 痴,写个脚本都写到差点脑中风) ,后来用替换法得到了对应的echo 3 个文件与 1 个帮助文件,另外加进一个增加、删除和调整输入法echo 用的程序 imetool.EXE,并写了一个脚本直接进行完整安装。echo 最后,祝您使用的愉快!echo.echo 更新说明:echo.echo 国庆节好难得哦echo 刚才把上次制作的“智能 ABC 5.0 版”拿出来看了下,发现脚echo 本有点太简单,而且这样做用户误操作的

13、几率很高,所以对安装echo 脚本稍微进行了一次小小的修改。echo 相信有了向导的帮忙,用户再也不会跟偶发脾气了吧echo.echo 龙梦秋echo 2006 年 10 月 1日echo *=pause 暂停脚本执行,按任意键可以继续:select mode 指定执行项目,在后面的 GOTO 参数中很有用cls 清除之前屏幕上的所有字符(以下对同样内容的解释能省我就省,免得有人说偶骗稿子篇幅)echo.echo.echo echo echo 请选择安装模式 echo echo 1、高级模式 echo echo 2、菜鸟模式 echo echo 3、自动安装模式 echo echo 4、退出安

14、装向导 echo echo echo.echo.echo * 请选择要进入的模式,并按回车确定执行 *echo.SET /P ST=“模式选择: “ SET 参数在结合之后的 ST 后将设置 ST 为输入项目,并在屏幕上显示等号之后的内容,在后面指定 GOTO 参数后将把用户的输入操作识别并转到对应的执行项目中。/P 参数表示需要在输入后再按回车才执行,避免有的用户一旦执行错误将会出现严重问题echo.if /I “%ST%“=“1“ goto advanced mode /I 参数代表之前在 SET 参数中字符的输入,“%ST%“表示之前设置的模式选择的输入。等号后面的双引号里的内容为设置好

15、的模式的转向标识,最后的 GOTO 后的内容则为转向的执行项目,下同if /I “%ST%“=“2“ goto easy modeif /I “%ST%“=“3“ goto setupif /I “%ST%“=“4“ goto exit:advanced modeclsecho.echo.echo echo echo “智能 ABC 输入法 5.0 重封装版“安装向导 echo echo By 龙梦秋 echo echo 1、备份当前系统的智能输入法 echo echo 2、安装“智能 ABC 输入法 5.0 重封装版“ echo echo 3、恢复智能 ABC 为原来版本 echo echo

16、 4、删除已经备份的智能 ABC 文件 echo echo 5、退出安装向导 echo echo 6、返回模式选择 echo echo echo.echo.echo * 请选择 1,2,3,4,5,6,并按回车确定执行 *echo.SET /P ST=“当前操作: “echo.if /I “%ST%“=“1“ goto repackif /I “%ST%“=“2“ goto setupif /I “%ST%“=“3“ goto backupif /I “%ST%“=“4“ goto deleteif /I “%ST%“=“5“ goto exitif /I “%ST%“=“6“ goto se

17、lect mode:easy modeclsecho.echo.echo echo echo “智能 ABC 输入法 5.0 重封装版“安装向导 echo echo By 龙梦秋 echo echo 1、安装“智能 ABC 输入法 5.0 重封装版“ echo echo 2、恢复智能 ABC 为原来版本 echo echo 3、退出安装向导 echo echo 4、返回模式选择 echo echo echo.echo.echo * 请选择 1,2,3,4,并按回车确定执行 *echo.SET /P ST=“当前操作: “echo.if /I “%ST%“=“1“ goto easy setup

18、if /I “%ST%“=“2“ goto backupif /I “%ST%“=“3“ goto exitif /I “%ST%“=“4“ goto select mode:repackecho *=echo 正在备份当前系统的智能输入法.echo *=copy %windir%System32WINABC.CWD %windir%System32WINABC.CWD-old 在这里输入要执行的操作的命令行,即可在隐藏了具体操作过程的时候进行原先命令行下的操作,而屏幕上只会显示操作结果。如果不想让它显示操作结果,那么可以在命令的最后增加上 nul ,直接隐藏到后面的提示部分。copy %wi

19、ndir%System32WINABC.IME %windir%System32WINABC.IME-oldcopy %windir%System32WINABC.OVL %windir%System32WINABC.OVL-oldcopy %windir%System32WINABC.hlp %windir%System32WINABC.hlp-oldecho *=echo 当前系统的智能输入法已经备份完毕!echo *=pauseclsgoto advanced mode 表示直接转到 advanced mode 项中:setupecho *=echo 正在安装“智能 ABC 输入法 5.

20、0 版“.echo *=copy imetool.exe %windir%System32imetool.exeimetool.exe /del3:WINABC.IMEcopy WINABC.CWD %windir%System32WINABC.CWDcopy WINABC.IME %windir%System32WINABC.IMEcopy WINABC.OVL %windir%System32WINABC.OVLcopy WINABC.hlp %windir%System32WINABC.hlp%windir%System32imetool.exe /install:智能 ABC 输入法

21、5.0,WINABC.IMEdel %windir%System32imetool.exeecho *=echo “智能 ABC 输入法 5.0 版“安装完毕!echo 请注销您的系统或者重新启动,以保证输入法的安装无误。echo *=pausegoto exit:backupecho *=echo 正在恢复智能 ABC 为原来版本.echo *=imetool.exe /del3:WINABC.IMEDEL %windir%System32WINABC.CWDDEL %windir%System32WINABC.IMEDEL %windir%System32WINABC.OVLDEL %wi

22、ndir%System32WINABC.hlprename %windir%System32WINABC.CWD-old %windir%System32WINABC.CWDrename %windir%System32WINABC.IME-old %windir%System32WINABC.IMErename %windir%System32WINABC.OVL-old %windir%System32WINABC.OVLrename %windir%System32WINABC.hlp-old %windir%System32WINABC.hlpcopy imetool.exe %win

23、dir%System32imetool.exe%windir%System32imetool.exe /install:智能 ABC 输入法,WINABC.IMEdel %windir%System32imetool.exeecho *=echo 当前系统的智能输入法已经恢复至原先版本!echo 请注销您的系统或者重新启动,以保证输入法的安装无误。echo *=pausegoto exit:deleteecho *=echo 正在删除已经备份的智能 ABC 文件.echo *=DEL %windir%System32WINABC.CWD-oldDEL %windir%System32WINAB

24、C.IME-oldDEL %windir%System32WINABC.OVL-oldDEL %windir%System32WINABC.hlp-oldecho *=echo 当前系统的智能输入法备份文件已经删除!echo *=pauseclsgoto advanced mode:easy setupecho *=echo 正在备份当前系统的智能输入法.echo *=copy %windir%System32WINABC.CWD %windir%System32WINABC.CWD-oldcopy %windir%System32WINABC.IME %windir%System32WINA

25、BC.IME-oldcopy %windir%System32WINABC.OVL %windir%System32WINABC.OVL-oldcopy %windir%System32WINABC.hlp %windir%System32WINABC.hlp-oldecho *=echo 当前系统的智能输入法已经备份完毕!echo *=echo *=echo 正在安装“智能 ABC 输入法 5.0 版“.echo *=copy imetool.exe %windir%System32imetool.exeimetool.exe /del3:WINABC.IMEcopy WINABC.CWD

26、%windir%System32WINABC.CWDcopy WINABC.IME %windir%System32WINABC.IMEcopy WINABC.OVL %windir%System32WINABC.OVLcopy WINABC.hlp %windir%System32WINABC.hlp%windir%System32imetool.exe /install:智能 ABC 输入法 5.0,WINABC.IMEdel %windir%System32imetool.exeecho *=echo “智能 ABC 输入法 5.0 版“安装完毕!echo 请注销您的系统或者重新启动,以

27、保证输入法的安装无误。echo *=pausegoto exit:exitecho *=echo 请按任意键退出安装向导.echo *=pause 在这里本来要在最后跟上 exit 参数让脚本退出,但是因为是脚本的最后部分,直接跟上 PAUSE 后用户随便一个操作都可以直接退出这个 BAT,所以可以省略仔细解析以上脚本,大家可以看到它的结构非常简单、明了,大致上就是介绍页面-模式选择-操作过程-退出脚本这样的结构。而且仔细看可以看到,标题一直到退出的时候都没有进行过更改。所以如果有需要,可以在每步的项目的下面增加标题修改的脚本,这样就可以完全模拟出跟安装程序一样的过程了。当然,如果需要获得与一

28、般安装程序一样拥有软件说明、授权协议、选择项目等等步骤的话,就需要在这个脚本中进行一定的调整。有的用户并不想拥有安装选项,那么可以参照以下的脚本来实现单页面安装echo off 隐藏操作过程,不对下边的操作进行显示title HashTab 1.0.0.4 BY 龙梦秋 修改当前命令行窗口的标题echo 显示介绍内容或者其他内容echo echo HashTab 1.0.0.4 RIP 版 echo BY 龙梦秋 echo echo 本程序可以在文件的右键上生成一个“文件效验”的扩展项,可以计算 echo 出所选文件的 MD5、SHA1、CRC32 值,速度之快、与系统结合后的操作之简便 ec

29、ho 非常适合不喜欢动用专用软件的人,非常之优秀! echo 如果替换后无效果,可以先结束一次 EXPLORER.EXE进程或者注销一次, echo 再次运行该进程或者登录后即可见到使用效果。 echo echo echo.SET /P ST= 请输入 Y HashTab 1.0.0.4或 N HashTab 1.0.0.4,其他键退出: 设置用户输入echo. if /I “%ST%“=“Y“ goto install 指定所选项目转向的执行项目if /I “%ST%“=“N“ goto uninstallgoto exit 指定如果输入其他的操作则直接转向 EXIT 项目:installc

30、opy HashTab.dll %windir%System32HashTab.dll 由于之前的echo off 关闭了显示,所以这里将会显示文件复制结果regsvr32 /s %windir%System32HashTab.dll 注册插件,采用/S 参数是为了避免出现注册插件后的确定对话框exit 用 EXIT 参数退出脚本,在这里将在脚本执行完毕后直接退出脚本,当然也可以考虑在这里结合 PAUSE 与 echo 来显示脚本执行后的提示信息。:uninstallregsvr32 /u /s %windir%System32HashTab.dlldel %windir%System32Ha

31、shTab.dll 这里将只会显示文件的删除结果,可以用/Q 参数禁止显示,也可以用/F 参数强制把只读属性的文件删除exit 退出脚本:exitexit 用 EXIT 参数退出脚本三、利用第三方工具进行基于脚本的软件的生成这段时间在网上发现两个很好玩的工具:EXE2BAT 1.0 与 文件转换VBS.VBS前者会把所有 EXE 文件经过 DEBUG 程序编写成 BAT 脚本,让用户在执行 BAT 脚本的同时可以还原该脚本中包含的文件,默认会执行还原后的文件,当然我们可以修改生成后的脚本;后者会把所有文件都编写成 BAT 脚本,执行这个 BAT 文件的用户将得到原文件,过程不说也很清楚,这里就

32、 PASS。不过有趣的是,两个工具都被杀软识别为“病毒制造机” ,这个我实在是不明白。之后看了下软件的工作原理与应用范围,终于知道这两个小东西居然可以协助黑客进行攻击,真是不能小看了人们的思考能力啊我这介绍两个工具并不是为了给你们做坏事,仅仅是作为一个参考,如果因为用这两个工具做坏事被抓了,表说你认识偶目前已经搞到了 EXE2BAT 的程序源代码,编译用的好象还是 WIN32语言的样子(我看不懂) ,以下是源代码#include #include #define M 65279char *msg=“GOOD_LUCK“;void help(void);char exe2bat(char *,c

33、har *);int main(int argc,char *argv)if(argc=1)help();exe2bat(argv1,argv2);return 0;void help()printf(“nWritten by W.Z.T nn“);printf(“exe2bat.exe input.exe output.batn“);exit(0);char exe2bat(char *s_f,char *t_f)FILE *s_fp,*t_fp;char *s_fe=s_f;char *t_fe=t_f;char c;char ch;long lenth;int i=1,k=256;if(

34、s_fp=fopen(s_fe,“rb“)=NULL)printf(“Cant open the file %s.n“,s_fe);exit(0);if(t_fp=fopen(t_fe,“w+“)=NULL)printf(“Cant create the file %s.n“,t_fe);exit(0);fseek(s_fp,0,SEEK_END);lenth=ftell(s_fp);fseek(s_fp,0,SEEK_SET);printf(“%ld,%xn“,lenth,lenth);if(lenth=M)printf(“The exe files lenth must be sgln“,

35、t_fp);fputs(“echo e “,t_fp);fprintf(t_fp,“%04x “,k);i+;if(lenth%16!=0)fputs(“%tmp%sgln“,t_fp);fputs(“echo rcxsgln“,t_fp);fprintf(t_fp,“echo %xsgln“,lenth,t_fp);fputs(“echo n tthackersgln“,t_fp);fputs(“echo wsgln“,t_fp);fputs(“echo qsgln“,t_fp);fputs(“debugnuln“,t_fp);fputs(“del sgln“,t_fp);fputs(“ren tthacker “,t_fp);fprintf(t_fp,“%ssgln“,s_fe);fputs(“,t_fp);fprintf(t_fp,“%s“,s_fe);fclose(s_fp);fclose(t_fp);puts(msg);return 0;文件转换 VBS 的源代码如下(大家可以复制后保存成 VBS 文件,然后

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报