你的位置:pcMing工作室 >> 资讯 >> windows >> windows应用 >> 详细内容 在线投稿

简明批处理教程

排行榜 收藏 打印 发给朋友 举报 来源: 互联网   发布者:未知
热度3138票  浏览350次 【共0条评论】【我要评论 时间:2010年1月22日 22:03
pcMing工作室 ms%T]u'C_(v0W"K"p2P

简明批处理教程----对批处理命令做了简单的介绍pcMing工作室0l!F]"z-IZ

pcMing工作室+Pw2SGQ un

 pcMing工作室o/KzH[K9s1C

pcMing工作室W1z9@"td3|:c

最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古语云:"授人以鱼,不如授人以渔。"因为网上好像并没有一个比较完整的教材,所以抽一点时间写了这片<<简明批处理教程>>给新手朋友们.也献给所有为实现网络的自由与共享而努力的朋友们.pcMing工作室`4S&H5nP+j

l%j ~ {/i*|t+|0批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。
u%@Ez-Xfgrc0pcMing工作室U,~)c,yC1T4P#|
一.简单批处理内部命令简介
S zGB$z01.Echo 命令pcMing工作室oC7s'B ?&b
打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。pcMing工作室#WR9Jg4Dr,b(CC
语法
$ji8de3J~5Z-he0echo [{on|off}] [message]pcMing工作室uG7~2M#a8\.[
Sample:@echo off / echo hello world
vQG;l^&R*HBE2M3Cz[$c0在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。pcMing工作室+[~ u!U0B
pcMing工作室2E)uaRF L2SM4a"Y
2.@ 命令pcMing工作室?T)}T$a f
表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。pcMing工作室i7o*xQXReE8db]^
Sample:@echo offpcMing工作室6c ?"~6y c
@echo Now initializing the program,please wait a minite...pcMing工作室 j5uUA\@
@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。)
V*\J)@z'K J0pcMing工作室#{9i6PNt CI}exY
3.Goto 命令
"qS!N{L*Xy s0指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。pcMing工作室r&`T.Gsyj9kK
语法:goto label (label是参数,指定所要转向的批处理程序中的行。) pcMing工作室^N2FOYrw!r
Sample:
D%R%{+@_ L$W0if {%1}=={} goto noparmspcMing工作室.B$?y"b&Q5r,op
if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)pcMing工作室Ly4B#Br @:G}:TM a
@Rem check parameters if null show usage
@ X)H,Z9D0:noparmspcMing工作室 h\+ER3|x"x.I
echo Usage: monitor.bat ServerIP PortNumber
2HR:R_{/^5l3x {t0goto endpcMing工作室|9T0ex1A
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。
]s7O?&H(|X8iW0
!p-x)DyQHe`04.Rem 命令pcMing工作室*m/W)d&j Nq
注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。pcMing工作室Gf(A,C1eT \/q4~
Rem MessagepcMing工作室 k ^:@4g QrVijb-V
Sample:@Rem Here is the description.pcMing工作室[b uf;E0k

BljR yT-C05.Pause 命令pcMing工作室Y.O Hf6@Wh0M
运行 Pause 命令时,将显示下面的消息: 
A"v~/AO:s0Press any key to continue . . . pcMing工作室*QE-C_]
Sample:pcMing工作室U\:ik X;g(o
@echo off 
)~3` l[,P"Nz0:begin 
0} V ~8X Ex L1X[6\0copy a:*.* d:\backpcMing工作室]7h;[rZ!z
echo Please put a new disk into driver A 
'B {E1ix0pause 
+g/Jf];dyzG0goto begin pcMing工作室6T a%V1@Q0W ~8d
在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。pcMing工作室;z,X*G9W\

gsf#@ oQ06.Call 命令
P:Bo%c2aVTa@0从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。pcMing工作室8z z_u J RC!G,?
语法
I1_ }2A;GQ5\5f0call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
TOg%D"_m@0参数
3yT{7}7z(?~n%P0[Drive:}[Path] FileName pcMing工作室zUc1Z,s&r
指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。
,v IK"ev7BHA@ fx0
)P6k1[7i(s0[07.start 命令
`oW Y+y)Q b0调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。pcMing工作室_,H(JKrB
入侵常用参数:pcMing工作室q4~Sh/O8{!Iw
MIN 开始时窗口最小化pcMing工作室zOW4{g_q
SEPARATE 在分开的空间内开始 16 位 Windows 程序pcMing工作室v1bar#t0ho.t|@;\
HIGH 在 HIGH 优先级类别开始应用程序
j g/t:pt l0`x8^0REALTIME 在 REALTIME 优先级类别开始应用程序pcMing工作室V8b1rx4m2e;F
WAIT 启动应用程序并等候它结束
dwj![ n|\(T"V%z0parameters 这些为传送到命令/程序的参数
H;{L.g RB#dFuv0执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。
d;u/A0U+~+z*n08.choice 命令pcMing工作室H&hhIa z
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234......
c3LB/?kTw d0如: choice /c:dme defrag,mem,endpcMing工作室u:lx"s$}!v4e!_I g$M
将显示pcMing工作室5MJAI:M,B.EYMf
defrag,mem,end[D,M,E]?
.a5qXx;~KR-uz0Sample:pcMing工作室5P:d#\rqA9|'{5I
Sample.bat的内容如下: pcMing工作室&vxNJE3Jv \9k/O(U
@echo off pcMing工作室pG3?'q3|!dwL
choice /c:dme defrag,mem,end 
RWu n5pE0if errorlevel 3 goto defrag (应先判断数值最高的错误码)pcMing工作室U*i/t v+r#G
if errorlevel 2 goto mem pcMing工作室\2C[ A T@Y'~m
if errotlevel 1 goto end pcMing工作室(P-_!s:J Z(E0B"S,G
pcMing工作室dl6?)t6y6s e|
:defrag 
`n-x3b&d}#~L7i$b%y0c:\dos\defrag pcMing工作室6n,H%n+A#Edv
goto end 
.miB#`(l!T0:mem pcMing工作室1FC*pd)C
mem 
g(H0R}8aH!DB0goto end pcMing工作室{/`"c VG,CE1`*x
:end 
m0`$R$rG0echo good bye
DG8~(v1WQ$Y1U]8K&{0pcMing工作室S&V z9I2|iz
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
d p7Y1q G0pcMing工作室S"hd!S?&p
9.If 命令pcMing工作室,zJ-X9z"z[|S
pcMing工作室"l C.i.o*C{w
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: pcMing工作室 Y0Za0| dg)~5V9Z
1、if "参数" == "字符串"  待执行的命令 pcMing工作室 [*KW2X c
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
,}m?$kxI/q0如if "%1"=="a" format a: 
9c&M U B3m3n0if {%1}=={} goto noparmspcMing工作室,N ]}0? ?-i
if {%2}=={} goto noparmspcMing工作室.`$gr s@;T@

a(yj5VPvOav02、if exist 文件名  待执行的命令 pcMing工作室n PA e1B
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
,K*hg{$fCV.@0如if exist config.sys edit config.sys pcMing工作室9vF*i G3Jw.QI
pcMing工作室zKu#e? Q s7l d
3、if errorlevel / if not errorlevel 数字  待执行的命令 pcMing工作室O"`\s WC7_8Nj'PD
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。pcMing工作室8Pf^"x b
如if errorlevel 2 goto x2  pcMing工作室4|tK(`"zw3iOE l3S
DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。
6K4i8t X`t0
z(O,z s#YA*g:a!u010.for 命令pcMing工作室H{xc?
for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。在批处理文件中使用 FOR 命令时,指定变量请使用 %%variablepcMing工作室4v?` pv_
pcMing工作室%WL0ouw8q4u
for {%variable|%%variable} in (set) do command [ CommandLineOptions]
IlGo m*|(O0%variable 指定一个单一字母可替换的参数。
%E1Q.p,y+b }w)VA\i0(set) 指定一个或一组文件。可以使用通配符。
U-m$st(A;Q3[ s M0command 指定对每个文件执行的命令。
?-`[Dd0command-parameters 为特定命令指定参数或命令行开关。
.P+W3U Ia&n/}]_0在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I
@&[y/Fs2sV(r0
'au6{y(U8inoDv7k{0如果命令扩展名被启用,下列额外的 FOR 命令格式会受到支持:pcMing工作室h*[7j;R_k%q9w
pcMing工作室T`2doXo E
FOR /D %variable IN (set) DO command [command-parameters]pcMing工作室:e!vW(ue:~3Z!R;z
pcMing工作室I;q'KZ-a Vd{ ^
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
'f;FXO|m{:a0pcMing工作室!Sk~Hl|!^
FOR /R [[drive:]path] %variable IN (set) DO command [command-pcMing工作室H)LZ+`\L?;v+U
pcMing工作室6] o;i?,K
检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。
A#P|N)DM xX0
H@8^!b!s8@0FOR /L %variable IN (start,step,end) DO command [command-parapcMing工作室W6wEk^-Mo2w
pcMing工作室8q)K!gV0N"t1W\$h?K
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。
x-J(C]1si9e`p9Z0
jZoM.v?0FOR /F ["options"] %variable IN (file-set) DO command 
Wz/]?} BB_0FOR /F ["options"] %variable IN ("string") DO command pcMing工作室S.{{,c+Bc/H fA+E
FOR /F ["options"] %variable IN ('command') DO command pcMing工作室 t `3ea%]#t-ah

V/O:E?0}y0或者,如果有 usebackq 选项:
;jl;hnB$e+V"Y)y0pcMing工作室U:l;sX C^2q']
FOR /F ["options"] %variable IN (file-set) DO command 
?0tP5yvP0FOR /F ["options"] %variable IN ("string") DO command 
c WIJ1h0FOR /F ["options"] %variable IN ('command') DO command 
&h,b,p k9`9t0
6r(e3v%n[P1PS2P5j0filenameset 为一个或多个文件名。继续到 filenameset 中的下一个文件之前,每份文件都已被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选 "options"参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为:pcMing工作室j)E0X'US

(A#vD0d5{Y F0eol=c - 指一个行注释字符的结尾(就一个)
,b Wd@%F"Xz0kO:i0skip=n - 指在文件开始时忽略的行数。pcMing工作室2X}QXq(w.x
delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。
$nu;F;[1o*q0tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的格式为一个范围。通过 nth 符号指定 m符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之分配并接受行的保留文本。
R)G1i~l0usebackq - 指定新语法已在下类情况中使用:pcMing工作室$|J"z%Lf2S0v7~[yR@z
在作为命令执行一个后引号的字符串并且引号字符为文字字符串命令并允许在 fi中使用双引号扩起文件名称。pcMing工作室B6@},v(N%\1{ d
pcMing工作室*_6~DLnSk;ws8O(A

bCLj,iE^0

顶:242 踩:137
对本文中的事件或人物打分:
当前平均分:-0.19 (915次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.78 (999次打分)
【已经有845人表态】
117票
感动
97票
路过
102票
高兴
94票
难过
108票
搞笑
93票
愤怒
103票
无聊
131票
同情
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】

网络资源