BAT和CMD脚本的编写与实际应用全解

合集下载

转载-BAT脚本编写教程

转载-BAT脚本编写教程

转载-BAT脚本编写教程转载⾃第⼀章批处理基础第⼀节常⽤批处理内部命令简介批处理定义:顾名思义,批处理⽂件是将⼀系列命令按⼀定的顺序集合为⼀个可执⾏的⽂本⽂件,其扩展名为BAT或者CMD。

这些命令统称批处理命令。

⼩知识:可以在键盘上按下Ctrl+C组合键来强⾏终⽌⼀个批处理的执⾏过程。

了解了⼤概意思后,我们正式开始学习.先看⼀个简单的例⼦!@echo offecho "欢迎来到⾮常BAT!"pause把上⾯的3条命令保存为⽂件test.bat或者test.cmd然后执⾏,他就会在屏幕上显⽰以下⼆⾏话:欢迎来到⾮常BAT!请按任意键继续. . .这就是⼀个简单批处理⽂件了,这个批处理⽂件⼀共就⽤了2条命令 "echo" 和"pause" 还有⼀个特殊符号"@"从上⾯这个简单的批处理中,我们可以发现其实批处理就是运⽤⼀些含有特殊意义的符号和⼀些完成指定功能的命令组合⽽成,那么在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解⼀下⼀些最常⽤的!(以下内容来源⽹络,请各位仔细阅读,好进⼊下节的实例说明)======================================================批处理的常见命令(未列举的命令还⽐较多,请查阅帮助信息)1、REM 和 ::2、ECHO 和 @3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和 :9、FIND10、START11、assoc 和 ftype12、pushd 和 popd13、CALL14、shift15、IF16、setlocal 与变量延迟17、ATTRIB 显⽰或更改⽂件属性介绍命令1、REM 和 ::REM为注释命令,⼀般⽤来给程序加上注解,该命令后的内容不被执⾏,但能回显。

批处理文件BAT的命令及使用

批处理文件BAT的命令及使用

批处理文件BAT的命令及使用bat是dos下的批处理文件。

.cmd是nt内核命令行环境的另一种批处理文件从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。

所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。

甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。

首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows 的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。

所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。

其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。

当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。

批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c语言程序。

BAT脚本编写教程(比较易懂和全面)

BAT脚本编写教程(比较易懂和全面)

BAT脚本编写教程(⽐较易懂和全⾯)echo、@、call、pause、rem(⼩技巧:⽤::代替rem)是批处理⽂件最常⽤的⼏个命令,我们就从他们开始学起。

echo 表⽰显⽰此命令后的字符echo off 表⽰在此语句后所有运⾏的命令都不显⽰命令⾏本⾝@与echo off相象,但它是加在每个命令⾏的最前⾯,表⽰运⾏时不显⽰这⼀⾏的命令⾏(只能影响当前⾏)。

call 调⽤另⼀个批处理⽂件(如果不⽤call⽽直接调⽤别的批处理⽂件,那么执⾏完那个批处理⽂件后将⽆法返回当前⽂件并执⾏当前⽂件的后续命令)。

pause 运⾏此句会暂停批处理的执⾏并在屏幕上显⽰Press any key to continue...的提⽰,等待⽤户按任意键后继续rem 表⽰此命令后的字符为解释⾏(注释),不执⾏,只是给⾃⼰今后参考⽤的(相当于程序中的注释)。

例1:⽤edit编辑a.bat⽂件,输⼊下列内容后存盘为c:\a.bat,执⾏该批处理⽂件后可实现:将根⽬录中所有⽂件写⼊ a.txt中,启动UCDOS,进⼊WPS等功能。

批处理⽂件的内容为: 命令注释: @echo off 不显⽰后续命令⾏及当前命令⾏ dir c:\*.* >a.txt 将c盘⽂件列表写⼊a.txt call c:\ucdos\ucdos.bat 调⽤ucdos echo 你好 显⽰"你好" pause 暂停,等待按键继续 rem 准备运⾏wps 注释:准备运⾏wps cd ucdos 进⼊ucdos⽬录 wps 运⾏wps 批处理⽂件的参数批处理⽂件还可以像C语⾔的函数⼀样使⽤参数(相当于DOS命令的命令⾏参数),这需要⽤到⼀个参数表⽰符“%”。

%[1-9]表⽰参数,参数是指在运⾏批处理⽂件时在⽂件名后加的以空格(或者Tab)分隔的字符串。

变量可以从%0到%9,%0表⽰批处理命令本⾝,其它参数字符串⽤%1到%9顺序表⽰。

bat编程语法

bat编程语法

bat编程语法.bat文件是Windows 批处理文件,用于执行一系列命令。

批处理文件使用基本的Windows 命令提示符语法。

下面是一些常见的.bat文件编程语法和示例:注释:使用rem命令添加注释。

复制代码bat`rem 这是一个注释`命令:你可以在.bat文件中运行任何Windows 命令。

复制代码bat`dir` // 列出当前目录中的文件和文件夹条件语句:使用if命令进行条件判断。

复制代码bat`if %variable%==value command`循环语句:使用for命令进行循环。

复制代码bat`for %%i in (file1,file2,file3) do command`变量:使用set命令定义变量。

复制代码bat`set variable=value`替换字符串:使用set命令替换字符串。

复制代码bat`set string=%string:old=new%`执行外部程序:使用call命令调用另一个.bat文件。

复制代码bat`call anotherScript.bat`暂停执行:使用pause命令暂停脚本执行并显示消息。

复制代码bat`pause`继续执行:按任意键继续。

退出脚本:使用exit /b或exit /f命令退出脚本。

前者会从当前批处理文件退出,后者会终止正在运行的程序并退出脚本。

传递参数:在调用.bat文件时,可以使用参数传递数据。

使用%1, %2, ... 来引用参数。

例如:myScript.bat arg1 arg2,然后在myScript.bat中使用%1和%2来引用这两个参数。

延迟变量扩展:有时你可能需要延迟变量的扩展,即在变量被使用之前不要扩展它。

为此,你可以使用!variable!来扩展变量(而不是使用%variable%)。

这在处理循环中的变量时特别有用。

重定向输出:使用>将命令的输出重定向到一个文件,或使用>>将输出追加到文件。

Bat运行CMD

Bat运行CMD
2.在 MySql.bat 文件中输入下面代码
@Echo Off
CD\
D:
CD D:\Program Files\MySQL\MySQL Server 5.0\bin
CMD
我的MySql安装目录为 D:\Program Files\MySQL\MySQL Server 5.0
Bat运行CMD(批处理)
每次要使用MySql中的一些工具,比如要备份数据库,都要先运行CMD,再进入MySql所在目录,做多了就觉得麻烦。
想出了一个快捷的方法,只要双击一下批处理文件(bat),就打开命名为 MySql.bat
这个vbs脚本也可以在bat环境中直接调用,达到隐藏bat自身的目的。

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 批处理程序名",vbhide
------------------------------------------------------------
将水平线中代码拷贝到记事本中,保存为"runbat.vbs"或者其它的名字(扩展名必须是.vbs),然后点击运行生成的脚本runbat.vbs,即可隐藏运行指定的批处理程序。
这样双击 MySql.bat 后,就运行CMD,并且所在的目录是 D:\Program Files\MySQL\MySQL Server 5.0\bin
其它程序也如此。
运行bat时隐藏cmd窗口的方法
编辑一个vbs脚本,在其中以隐藏窗口运行批处理程序。
------------------------------------------------------------

利用Windows CMD命令执行程序和脚本的方法

利用Windows CMD命令执行程序和脚本的方法

利用Windows CMD命令执行程序和脚本的方法Windows操作系统是目前最为广泛使用的操作系统之一,而CMD命令行工具是Windows操作系统中非常重要的工具之一。

通过CMD命令行,我们可以执行各种操作,包括执行程序和脚本。

本文将介绍一些利用Windows CMD命令执行程序和脚本的方法。

一、执行可执行程序在Windows CMD命令行中执行可执行程序非常简单。

首先,我们需要找到可执行程序所在的路径。

然后,打开CMD命令行工具,输入可执行程序的路径和文件名,按下回车键即可执行该程序。

例如,我们有一个名为"program.exe"的可执行程序,位于"D:\myfolder"目录下。

我们可以通过以下步骤来执行该程序:1. 打开CMD命令行工具,可以通过按下Win+R键,然后输入"cmd"并按下回车键来打开CMD命令行工具。

2. 输入命令"cd D:\myfolder",按下回车键,将当前路径切换到"D:\myfolder"目录。

3. 输入命令"program.exe",按下回车键,即可执行该程序。

二、执行脚本文件除了执行可执行程序,我们还可以使用Windows CMD命令行来执行脚本文件。

脚本文件通常包含一系列命令,可以自动执行一些操作。

在Windows CMD命令行中执行脚本文件的方法有多种。

下面介绍两种常用的方法。

1. 使用"call"命令使用"call"命令可以执行批处理脚本文件(以.bat或.cmd为扩展名)。

首先,我们需要找到脚本文件所在的路径。

然后,打开CMD命令行工具,输入"call"命令,后跟脚本文件的路径和文件名,按下回车键即可执行该脚本文件。

例如,我们有一个名为"script.bat"的脚本文件,位于"D:\myfolder"目录下。

bat编程代码

bat编程代码

bat编程代码摘要:1.BAT 编程代码简介2.BAT 编程代码的基本语法3.BAT 编程代码的应用实例4.总结正文:一、BAT 编程代码简介BAT(Batch)是一种批处理文件格式,可以用于编写简单的计算机程序。

它是一种基于文本的脚本语言,可以通过命令提示符(Windows 系统)或命令行界面(Linux 和macOS 系统)执行。

BAT 文件包含一系列命令和操作,可以按顺序执行。

这种脚本语言在操作系统中的应用十分广泛,对于初学者来说,学习BAT 编程代码是一个很好的起点。

二、BAT 编程代码的基本语法1.文件结构一个BAT 文件由一系列命令组成。

每个命令占一行,以分号(;)或行末尾的换行符()分隔。

BAT 文件以@echo off 开头,表示在执行文件时不显示命令行提示符。

2.基本命令常用的BAT 基本命令包括:- echo:显示文本,类似于在命令行中输入print- rem:注释,类似于在代码中加入注释- pause:暂停执行,等待用户按任意键继续- call:调用其他批处理文件- if:条件语句,根据条件执行不同的命令- for:循环语句,用于重复执行一系列命令三、BAT 编程代码的应用实例以下是一个简单的BAT 编程代码实例,用于批量修改文件扩展名:```@echo offsetlocal enabledelayedexpansionfor /f "delims=" %%a in ("dir /b /a-d") do (set "filename=%%a"set "ext=txt"if "!filename!" neq "!filename: =!" (ren "!filename!" "!filename: =!."!ext!))```四、总结BAT 编程代码是一种简单易学的脚本语言,适用于Windows、Linux 和macOS 等操作系统。

批处理文件BAT、CMD命令大全

批处理文件BAT、CMD命令大全

批处理文件BAT命令大全之邯郸勺丸创作1.Echo 命令打开回显或封闭请求回显功效,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.语法echo [{on│off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格局的文件中.这将在以后的例子中体现出来.2.@ 命令暗示不显示@ 后面的命令,在入侵过程中(例如使用批处理来格局化敌人的硬盘)自然不克不及让对方看到你使用的命令啦 . Sample:@echo off@echo Now initializing the program,please wait a minite... @format X: /q/u/autoset (format 这个命令是不成以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的.)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令.语法:goto label (label是参数,指定所要转向的批处理程序中的行.)Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2就是暗示变量.)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来暗示这个字母是标签, : 开头的字符行 , 在批处理中都被视作标号 , 而直接忽略其后的所有内容 , 只是为了与正常的标号相区别 , 建议使用 goto 所无法识此外标号 , 即在 : 后紧跟一个非字母数字的一个特殊符号 . goto 命令就是按照这个:来寻找下一步跳到到那里.最好有一些说明这样你他人看起来才会理解你的意图啊.4.Rem 命令注释命令,起一个注释的作用,便于他人阅读和你自己日后修改. Rem MessageSample:@Rem Here is the description.5.Pause 命令运行 Pause 命令时,将显示下面的消息:Press any key to continue . . .Sample:@echo off:begincopy a:*.* d: \backecho Please put a new disk into driver Apausegoto begin在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back 中.显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您改换磁盘,然后按任意键继续处理.6.Call 命令从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序.call 命令接受用作调用目标的标签.如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用.语法call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]参数[Drive:}[Path] FileName指定要调用的批处理程序的位置和名称.filename 参数必须具有 .bat 或 .cmd 扩展名.7.start 命令调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用.入侵经常使用参数:MIN 开始时窗口最小化SEPARATE 在分隔的空间内开始 16 位 Windows 程序HIGH 在 HIGH 优先级类别开始应用程序REALTIME 在 REALTIME 优先级类别开始应用程序WAIT 启动应用程序并等候它结束parameters 这些为传送到命令/程序的参数执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就前往命令提示.如果在命令脚本内执行,该新行为则不会产生.8.choice 命令choice 使用此命令可以让用户输入一个字符,从而运行不合的命令.使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格.它的前往码为 1234......如 : choice /c:dme defrag,mem,end将显示defrag,mem,end[D,M,E]?Sample:Sample.bat的内容如下 :@echo offchoice /c:dme defrag,mem,endif errorlevel 3 goto defrag (应先判断数值最高的错误码)if errorlevel 2 goto memif errotlevel 1 goto end:defragc:\dos\defraggoto end:memmemgoto end:endecho good bye此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择 d m e ,然后if语句将作出判断,d暗示执行标号为defrag的程序段,m暗示执行标号为mem的程序段,e暗示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束.9.If 命令if 暗示将判断是否合适规定的条件,从而决定执行不合的命令. 有三种格局 :a、if "参数" == "字符串" 待执行的命令参数如果等于指定的字符串,则条件成立,运行命令,不然运行下一句.(注意是两个等号)如 if "%1"=="a" format a:if {%1}=={} goto noparmsif {%2}=={} goto noparmsb 、if exist 文件名待执行的命令如果有指定的文件,则条件成立,运行命令,不然运行下一句.c 、if errorlevel / if not errorlevel 数字待执行的命令如果前往码等于指定的数字,则条件成立,运行命令,不然运行下一句.如if errorlevel 2 goto x2DOS程序运行时都会前往一个数字给DOS,称为错误码errorlevel 或称前往码,罕见的前往码为0、1.10.for 命令for 命令是一个比较庞杂的命令,主要用于参数在指定的规模内循环执行命令.在批处理文件中使用 FOR 命令时,指定变量请使用 %%variablefor {%variable│%%variable} in (set) do command [ CommandLineOptions]%variable 指定一个单一字母可替换的参数.(set) 指定一个或一组文件.可以使用通配符.command 指定对每个文件执行的命令.command-parameters 为特定命令指定参数或命令行开关.在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable.变量名称是区分大小写的,所以 %i 不合于 %I如果命令扩展名被启用,下列额定的 FOR 命令格局会受到支持: FOR /D %variable IN (set) DO command [command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配. FOR /R [[drive:]path] %variable IN (set) DO command [command-检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句.如果在 /R 后没有指定目录,则使用当前目录.如果集仅为一个单点(.)字符,则枚举该目录树.FOR /L %variable IN (start,step,end) DO command [command-para该集暗示以增量形式从开始到结束的一个数字序列.因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1). FOR /F ["options"] %variable IN (file-set) DO commandFOR /F ["options"] %variable IN ("string") DO commandFOR /F ["options"] %variable IN ('command') DO command或者,如果有 usebackq 选项:FOR /F ["options"] %variable IN (file-set) DO commandFOR /F ["options"] %variable IN ("string") DO commandFOR /F ["options"] %variable IN ('command') DO command filenameset 为一个或多个文件名.继续到 filenameset 中的下一个文件之前,每份文件都已被打开、读取并经过处理.处理包含读取文件,将其分红一行行的文字,然后将每行解析成零或更多的符号.然后用已找到的符号字符串变量值调用 For 循环.以默认方法,/F 通过每个文件的每一行中分隔的第一个空白符号.跳过空白行.您可通过指定可选 "options" 参数替代默认解析操纵.这个带引号的字符串包含一个或多个指定不合解析选项的关头字.这些关头字为:eol=c - 指一个行注释字符的结尾(就一个 )skip=n - 指在文件开始时忽略的行数.delims=xxx - 指分隔符集.这个替换了空格和跳格键的默认分隔符集.tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 自己.这会导致额定变量名称的格局为一个规模.通过 nth 符号指定 m 符号字符串中的最后一个字符星号, 那么额定的变量将在最后一个符号解析之分派并接受行的保存文本.usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且引号字符为文字字符串命令并允许在 fi 中使用双引号扩起文件名称.sample1:FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command会阐发 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或空格定界符号.请注意,这个 for 程序体的语句引用 %i 来取得第二个符号,引用 %j 来取得第三个符号,引用 %k 来取得第三个符号后的所有剩余符号.对于带有空格的文件名,您需要用双引号将文件名括起来.为了用这种方法来使用双引号,您还需要使用usebackq 选项,不然,双引号会被理解成是用作定义某个要阐发的字符串的.%i 专门在 for 语句中得到说明,%j 和 %k 是通过tokens= 选项专门得到说明的.您可以通过 tokens= 一行指定最多 26 个符号,只要不试图说明一个高于字母 'z' 或'Z' 的变量.请记住,FOR 变量是单一字母、分大小写和全局的;同时不克不及有 52 个以上都在使用中.您还可以在相邻字符串上使用 FOR /F 阐发逻辑;办法是,用单引号将括号之间的 filenameset 括起来.这样,该字符串会被当作一个文件中的一个单一输入行.最后,您可以用 FOR /F 命令来阐发命令的输出.办法是,将括号之间的 filenameset 酿成一个反括字符串.该字符串会被当作命令行,传递到一个子 CMD.EXE,其输出会被抓进内存,并被当作文件阐发.因此,以下例子:FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i会枚举当前环境中的环境变量名称.另外,FOR 变量参照的替换已被增强.您现在可以使用下列选项语法:~I - 删除任何引号("),扩充 %I%~fI - 将 %I 扩充到一个完全合格的路径名%~dI - 仅将 %I 扩充到一个驱动器号%~pI - 仅将 %I 扩充到一个路径%~nI - 仅将 %I 扩充到一个文件名%~xI - 仅将 %I 扩充到一个文件扩展名%~sI - 扩充的路径只含有短名%~aI - 将 %I 扩充到文件的文件属性%~tI - 将 %I 扩充到文件的日期/时间%~zI - 将 %I 扩充到文件的大小%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称.如果环境变量未被定义,或者没有找到文件,此组合键会扩充空字符串可以组合修饰符来得到多重结果:%~dpI - 仅将 %I 扩充到一个驱动器号和路径%~nxI - 仅将 %I 扩充到一个文件名和扩展名%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径.%~ftzaI - 将 %I 扩充到类似输出线路的 DIR在以上例子中,%I 和 PATH 可用其他有效数值代替.%~ 语法用一个有效的 FOR 变量名终止.选取类似 %I 的大写变量名比较易读,并且避免与不分大小写的组合键混淆.以上是MS的官方帮忙,下面我们举几个例子来具体说明一下For 命令在入侵中的用途.sample2 :利用For命令来实现对一台目标Win2k主机的暴力密码破解.我们用net use \\ip\ipc$ "password" /u:"administrator"来测验考试这和目标主机进行连接,当成功时记下密码.最主要的命令是一条: for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator"用i%来暗示admin的密码,在dict.txt中这个取i%的值用net use 命令来连接.然后将程序运行结果传递给find命令--for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"│find ": 命令成功完成">>D:\ok.txt ,这样就ko了.sample3 :你有没有过手里有大量肉鸡等着你去种后门+木马呢?,当数量特别多的时候,原本很开心的一件事都会变得很郁闷:).文章开头就谈到使用批处理文件,可以简化日常或重复性任务.那么如何实现呢?呵呵,看下去你就会明白了.主要命令也只有一条:(在批处理文件中使用 FOR 命令时,指定变量使用 %%variable)@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%ktokens的用法请拜见上面的sample1,在这里它暗示按顺序将victim.txt中的内容传递给door.bat中的参数%i %j %k.而cultivate.bat无非就是用net use命令来建立IPC$连接,并copy木马+后门到victim,然后用前往码(If errorlever =)来筛选成功种植后门的主机,并echo出来,或者echo到指定的文件. delims= 暗示vivtim.txt中的内容是一空格来分隔的.我想看到这里你也一定明白这victim.txt里的内容是什么样的了.应该按照%%i %%j %%k暗示的对象来排列,一般就是ip password username.代码雏形:--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------@echo off@if "%1"=="" goto usage@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k@goto end:usage@echo run this batch in dos modle.or just double-click it. :end--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------------------------- cut here then save as a batchfile(I call it door.bat) -----------------------------@net use \\%1\ipc$ %3 /u:"%2"@if errorlevel 1 goto failed@echo Trying to establish the IPC$ connection ............OK:failed@echo Sorry can not connected to the victim.----------------- cut here then save as a batchfile(I call it door.bat) --------------------------------尚可扩展,例如:加入清除日志+DDOS的功效,加入定时添加用户的功效,更深入一点可以使之具备自动传播功效(蠕虫).此处未几做叙述,有兴趣的朋友可自行研究.批处理中可以使用参数,一般从1%到 9%这九个,当有多个参数时需要用shift来移动,这种情况其实未几见,我们就不考虑它了.@echo offif "%1"=="a" format a::format@format a:/q/u/auotset@echo please insert another disk to driver A.@pause@goto fomat这个例子用于连续地格局化几张软盘,所以用的时候需在dos窗口输入fomat.bat a,呵呵,好像有点画蛇添足了~sample2:当我们要建立一个IPC$连接地时候总要输入一大串命令,弄欠好就打错了,所以我们不如把一些固定命令写入一个批处理,把肉鸡地ip password username 当着参数来赋给这个批处理,这样就不必每次都打命令了.@echo off@net use \\1%\ipc$ "2%" /u:"3%" 注意哦,这里PASSWORD是第二个参数.@if errorlevel 1 echo connection failed怎么样,使用参数还是比较简单的吧?欠好的地方请大家见谅见谅下哈..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BAT、CMD脚本的编写与实际应用在微软官方的定义中,BAT属于批处理脚本(可以运行在DOS、WINDOWS下),是用来进行简化平时操作的批量化集成文件。

而CMD,则是只能运行在NT系统下的批处理文件,其功能与BAT是一样的。

从早期的BAT开始,该文件就为大家提供了方便,并在WINDOWS出现后,它的能力可以说是万能的。

从最基础的启动盘的引导,到注册表,甚至系统服务的操作,BAT与CMD都可以胜任。

而且由于它简便的编写与通用性,很快就布满整个世界。

本文将简单介绍BAT与CMD脚本的编写过程,因为在下水平不高,所以如有错误欢迎指出!一、BAT与CMD中的部分参数1、定义文件夹的参数目前我能够搜集到并可以给出意思的通用系统参数如下(不包括后边的解释部分):%windir% ——操作系统文件夹,一般为C:下的WINDOWS文件夹%sys% ——系统根目录,也就是C:盘目录%programfiles% ——Program Files目录,安装程序通常都安装在这个目录下%systemdrive% ——操作系统所在磁盘,与%sys%属于同一目录%systemroot% ——操作系统文件夹,一般为C:下的WINDOWS文件夹%InfDir% ——系统根目录,也就是C:盘目录%TEMP% ——当前用户的临时目录,一般是C:\Documents and Settings\用户名\Local Settings\Temp目录2、基础操作参数(可以在CMD命令行模式中输入HELP获得)ASSOC 显示或修改文件扩展名关联。

AT 计划在计算机上运行的命令和程序。

ATTRIB 显示或更改文件属性。

BREAK 设置或清除扩展式CTRL+C 检查。

CACLS 显示或修改文件的访问控制列表(ACLs)。

CALL 从另一个批处理程序调用这一个。

CD 显示当前目录的名称或将其更改。

CHCP 显示或设置活动代码页数。

CHDIR 显示当前目录的名称或将其更改。

CHKDSK 检查磁盘并显示状态报告。

CHKNTFS 显示或修改启动时间磁盘检查。

CLS 清除屏幕。

CMD 打开另一个Windows 命令解释程序窗口。

COLOR 设置默认控制台前景和背景颜色。

COMP 比较两个或两套文件的内容。

COMPACT 显示或更改NTFS 分区上文件的压缩。

CONVERT 将FAT 卷转换成NTFS。

您不能转换当前驱动器。

COPY 将至少一个文件复制到另一个位置。

DATE 显示或设置日期。

DEL 删除至少一个文件。

DIR 显示一个目录中的文件和子目录。

DISKCOMP 比较两个软盘的内容。

DISKCOPY 将一个软盘的内容复制到另一个软盘。

DOSKEY 编辑命令行、调用Windows 命令并创建宏。

ECHO 显示消息,或将命令回显打开或关上。

ENDLOCAL 结束批文件中环境更改的本地化。

ERASE 删除至少一个文件。

EXIT 退出CMD.EXE 程序(命令解释程序)。

FC 比较两个或两套文件,并显示不同处。

FIND 在文件中搜索文字字符串。

FINDSTR 在文件中搜索字符串。

FOR 为一套文件中的每个文件运行一个指定的命令。

FORMAT 格式化磁盘,以便跟Windows 使用。

FTYPE 显示或修改用于文件扩展名关联的文件类型。

GOTO 将Windows 命令解释程序指向批处理程序中某个标明的行。

GRAFTABL 启用Windows 来以图像模式显示扩展字符集。

HELP 提供Windows 命令的帮助信息。

IF 执行批处理程序中的条件性处理。

LABEL 创建、更改或删除磁盘的卷标。

MD 创建目录。

MKDIR 创建目录。

MODE 配置系统设备。

MORE 一次显示一个结果屏幕。

MOVE 将文件从一个目录移到另一个目录。

PATH 显示或设置可执行文件的搜索路径。

PAUSE 暂停批文件的处理并显示消息。

POPD 还原PUSHD 保存的当前目录的上一个值。

PRINT 打印文本文件。

PROMPT 更改Windows 命令提示符。

PUSHD 保存当前目录,然后对其进行更改。

RD 删除目录。

RECOVER 从有问题的磁盘恢复可读信息。

REM 记录批文件或CONFIG.SYS 中的注释。

REN 重命名文件。

RENAME 重命名文件。

REPLACE 替换文件。

RMDIR 删除目录。

SET 显示、设置或删除Windows 环境变量。

SETLOCAL 开始批文件中环境更改的本地化。

SHIFT 更换批文件中可替换参数的位置。

SORT 对输入进行分类。

START 启动另一个窗口来运行指定的程序或命令。

SUBST 将路径跟一个驱动器号关联。

TIME 显示或设置系统时间。

TITLE 设置CMD.EXE 会话的窗口标题。

TREE 以图形模式显示驱动器或路径的目录结构。

TYPE 显示文本文件的内容。

VER 显示Windows 版本。

VERIFY 告诉Windows 是否验证文件是否已正确写入磁盘。

VOL 显示磁盘卷标和序列号。

XCOPY 复制文件和目录树。

3、扩展程序参数的部分参数(考虑到部分参数很危险,所以这里不提供)cipher ——显示或更改NTFS 分区上的目录(文件)的加密defrag ——启动磁盘碎片整理程序edit ——启动DOS下的文本编辑程序,在XP中也有保留expand ——WINDOWS中自带的解压程序,可以把安装盘中文件名以_结尾的文件解压,NT系列的安装就是在DOS下用这个对文件进行解压后进行排序安装的EXTRACT或extrac32 ——对CAB文件进行解压缩的程序,现在都用WINRAR,所以这个功能没什么保留价值了makecab ——制作CAB压缩包的程序,对启动盘的制作倒很有用处msg ——可以将消息发送给同网用户的程序,格式是[MSG 对方机器名信息](不包括中括号)ping ——可以检测网络的运行状态的程序,从WINDOWS时代开始就有了proxycfg ——设置代理用的程序regsvr32 ——服务注册程序,一般是插件的注册,也可以是解码器reg或regedit ——注册表操作程序,有时候在BAT、CMD脚本中可以用这个参数进行注册表的修改操作shutdown ——关机程序,可以在一定范围内控制一台或者一个局域网里所有机器的关机时间等systeminfo ——查看系统当前配置情况的参数,也可以显示出运行时间等TASKKILL ——进程删除程序,这个可以关闭至少一个进程tasklist ——查看当前进程列表的程序二、制作带向导功能的特殊结构脚本看到标题大家可能会有点郁闷:BAT、CMD脚本也可以实现向导功能?很荣幸的告诉大家,是的。

BAT、CMD脚本不但可以实现脚本的向导功能,而且还可以结合大量的参数,组合成一个只需要不到100KB就可以通吃所有系统的工具包!本介绍部分可以配合“结合Universal Extractor进行简单软件的绿化制作”所写的制作过程进行实况编写,不过限于篇幅关系,这里只对带有向导的BAT、CMD脚本进行解析。

首先让我们看一个简单的不能再简单的例子(后边标注部分在实际应用中是不会写进脚本的)——@echo off ——隐藏操作过程,不对下边的操作进行显示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版本的用户(包括偶)变得无法适应。

echo 为了让包括偶在内的所有5.0用户可以回到原来的输入法环echo 境,经过偶一番琢磨(本来打算写程序来安装,可惜偶是编程白echo 痴,写个脚本都写到差点脑中风),后来用替换法得到了对应的echo 3个文件与1个帮助文件,另外加进一个增加、删除和调整输入法echo 用的程序imetool.EXE,并写了一个脚本直接进行完整安装。

echo 最后,祝您使用的愉快!echo.echo 更新说明:echo.echo 国庆节……好难得哦~~echo 刚才把上次制作的“智能ABC 5.0版”拿出来看了下,发现脚echo 本有点太简单,而且这样做用户误操作的几率很高,所以对安装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、退出安装向导※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%"表示之前设置的模式选择的输入。

等号后面的双引号里的内容为设置好的模式的转向标识,最后的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 ※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 select 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 setupif /I "%ST%"=="2" goto backupif /I "%ST%"=="3" goto exitif /I "%ST%"=="4" goto select mode:repackecho *=======================================================echo 正在备份当前系统的智能输入法...echo *=======================================================copy %windir%\System32\WINABC.CWD %windir%\System32\WINABC.CWD-old ——在这里输入要执行的操作的命令行,即可在隐藏了具体操作过程的时候进行原先命令行下的操作,而屏幕上只会显示操作结果。

相关文档
最新文档