2023年11月26日发(作者:)
windows批处理(cmdbat)编程详解
开始之前先简单说明下cmd⽂件和bat⽂件的区别:在本质上两者没有区别,都是简单的⽂本编码⽅式,都可以⽤记事本创建、编辑和查
看。两者所⽤的命令⾏代码也是共⽤的,只是cmd⽂件中允许使⽤的命令要⽐bat⽂件多。cmd⽂件只有在windows2000以上的系统中才
能运⾏,⽽bat⽂件则没有这个限制。从它们的⽂件描述中也可以看出以上的区别:cmd⽂件的描述是“windows nt命令脚本”, bat⽂件
的描述是“ms dos批处理⽂件”
如果没有⼀定的相关知识恐怕不容易看懂和理解批处理⽂件,也就更谈不上⾃⼰动⼿编写了.批处理⽂件是⽆格式的⽂本⽂件,它包含⼀
条或多条命令。它的⽂件扩展名为 .bat 或 .cmd。在命令提⽰下键⼊批处理⽂件的名称,或者双击该批处理⽂件,系统就会调⽤按
照该⽂件中各个命令出现的顺序来逐个运⾏它们。使⽤批处理⽂件(也被称为批处理程序或脚本),可以简化⽇常或重复性任务。当然我们
的这个版本的主要内容是介绍批处理在⼊侵中⼀些实际运⽤,例如我们后⾯要提到的⽤批处理⽂件来给系统打补丁、批量植⼊后门程序等。
5) pause 命令
运⾏ Pause 命令时,将显⽰下⾯的消息:
Press any key to continue . . .
Sample:
具体例⼦:
说明:如果你所在程序的路径中带有空格,那么必须⽤“”把路径括起来,否则系统会提⽰找不到XX⽂件,另外,在运⾏某些程序时,需
在路径的前⾯加⼀对空⽩的“”,表⽰创建⼀个空⽩的窗⼝,它指向的程序是XXXXXXXX。还有就是别忘了空格。
2、if exist ⽂件名 待执⾏的命令
如果有指定的⽂件,则条件成⽴,运⾏命令,否则运⾏下⼀句
如if exist edit
3、if errorlevel / if not errorlevel 数字 待执⾏的命令
/D强⼤多了!
他可以把当前或者你指定路径下的⽂件名字全部读取,注意是⽂件名字,有什么⽤看例⼦!
你想显⽰中的内容,会⽤什么命令呢?当然是type,type
for也可以完成同样的命令:
for /f %%i in() do echo %%i
还是先从括号执⾏,因为含有参数/f,所以for会先打开,然后读出⾥⾯的所有内容,把它作为⼀个集合,并且以每⼀⾏作为⼀个元
for/f "tokens=* delims= " %%i in () do echo %%i
执⾏结果为:
第1⾏第1列第1⾏第2列第1⾏第3列
第2⾏第1列第2⾏第2列第2⾏第3列
第3⾏第1列第3⾏第2列第3⾏第3列
Sample:
C:>dir z: & dir c:Ex4rch
The system cannot find the path specified.
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of c:Ex4rc
将⼀条命令或某个程序输出结果的重定向到特定⽂件中, > 与 >>的区别在于,>会清除调原有⽂件中的内容后写⼊指定⽂件,⽽>>只会追加内
容到指定⽂件中,⽽不会改动其中的内容。
sample1:
echo hello world>c: (stupid example?)
sample2:
时下DLL⽊马盛⾏,我们知道system32是个捉迷藏的好地⽅,许多⽊马都削尖了脑袋往那⾥钻,DLL马也不例外,针对这⼀点我们可以在
安装好系统和必要的应⽤程序后,对该⽬录下的EXE和DLL⽂件作⼀个记录:
附1: WIN2000下的9个批处理命令
批处理⽂件是将⼀系列命令按⼀定的顺序集合为⼀个可执⾏的⽂本⽂件,其扩展名为BAT。
1) REM
REM 是个注释命令⼀般是⽤来给程序加上注解的,该命令后的内容在程序执⾏的时候将不会被显⽰和执⾏。例:
REM 你现在看到的就是注解,这⼀句将不会被执⾏。在以后的例⼦中解释的内容都REM 会放在REM后⾯。请⼤家注意。
2) ECHO
IF 条件判断语句,语法格式如下:
FOR这个命令⽐较特殊是⼀个循环执⾏命令的命令,同时FOR的循环⾥⾯还可以套⽤FOR在进⾏循环。这篇我们介绍基本的⽤法就不做套
开始批处理⽂件中环境改动的本地化操作。在执⾏ SETLOCAL 之后
所做的环境改动只限于批处理⽂件。要还原原先的设置,必须执
⾏ ENDLOCAL。 达到批处理⽂件结尾时,对于该批处理⽂件的每个
>的意思是传递并覆盖。他所起的作⽤是将运⾏后的回显结果传递到后⾯的范围(后⾯可是⽂件也可是默认的系统控制台)例:
&符号允许在⼀⾏中使⽤2个以上不同的命令,当第⼀个命令执⾏失败将不影响第2个命令的执⾏。例:


发布评论