当前位置:首页 » 编程软件 » bat脚本if语句

bat脚本if语句

发布时间: 2024-05-26 02:37:22

1. bat鑴氭湰if涓澶氭浔浠惰佸备綍鍐

if "%date:~5,2%"=="06" if "%date:~8,2%"=="01" if %time:~,5"="00:00" echo Happy Children's Day!
pause

2. 怎么编写bat文件,是什么语法,给几个范本

【 echo 命令 】

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
语法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一
些命令到特定的文件中。
【 rem 命令 】

注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读
和你自己日后修改。
:: 也具有rem的功能
但::和rem还是有区别的,当关闭回显时,rem和::后的内容都不会显示。但是当打开回显时,rem和rem
后的内容会显示出来,然而::后的内容仍然不会显示。
Rem Message
Sample:@Rem Here is the description.
【 pause 命令 】

暂停命令。运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)
Sample:
@echo off
:begin
G:*.* d:\back
echo 请插入另一张光盘...
pause
goto begin
在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张光盘
盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。
【 call 命令 】

从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的
标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
语法
call [[Drive:][Path] FileName ] [:label [arguments]]
参数
[Drive:}[Path] FileName
指定要调用的批处理程序的位置和名称。
【 start 命令 】

调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
如:start calc.exe 即可打开Windows的计算器。
常用参数:
MIN 开始时窗口最小化
SEPARATE 在分开的空间内开始 16 位 Windows 程序
HIGH 在 HIGH 优先级类别开始应用程序
REALTIME 在 REALTIME 优先级类别开始应用程序
WAIT 启动应用程序并等候它结束
parameters 这些为传送到命令/程序的参数
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令
脚本内执行,该新行为则不会发生。
【 goto 命令 】

跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释
。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto
命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。
【 set 命令 】

显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令为实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
[编辑本段]批处理符号简介

【 回显屏蔽 @ 】

表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
@用法举例:通过运行批处理文件对比pause和@pause命令即可明了@的效果。
【 重定向1 >与>> 】

将输出信息重定向到指定的设备或文件。系统默认输出到显示器。
如:echo aaaaa>a.txt 即可将本在显示器上显示的信息aaaaa输出到文件a.txt中,屏幕上没有任何显示。如果文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息aaaaa。
echo aaaaa>>a.txt 类似于echo aaaaa>a.txt。区别在于:如果a.txt本已存在,>a.txt会擦除a.txt中的原有内容,而>>a.txt并不擦除原有内容,仅在a.txt文件的末尾添加信息aaaaa。a.txt不存在时,二者没有差别。
【 重定向2 < 】

将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。
重定向使用举例:
=========================================
@echo off
echo abcdefg——这是文件a.txt中的信息>a.txt
echo 请任意输入字符,以回车结束:
set /p ifo=
cls
echo 【 从屏幕获得的输入信息 】
echo %ifo%
set /p ifo=<a.txt
echo 【 从文件a.txt获得的输入信息 】
echo %ifo%
pause>nul
=========================================
读者观察命令与输出即可体会到重定向的功能和效果。
【 管道符号 | 】

将管道符号前面命令的输出结果重定向输出到管道符号后面的命令中去,作为后面命令的输入。使用格式为:command_1|command_2
管道符号使用举例:
=========================================
@echo off
echo aaaa>a.txt
del /p a.txt
pause
=========================================
@echo off
echo aaaa>a.txt
echo y|del /p a.txt
pause
=========================================
对比以上两个批处理执行结果,读者即可明白管道符的用法和效果。
需要说明的是,上面del命令添加开关/p只是为了让读者明白管道符号的使用方法,实际删除文件时不加/p开关即可实现无提示直接删除。
【 转义符 ^ 】

将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > <
比如,如果我们想输出符号“>”,直接用命令 echo > 是不行的,必须修改为 echo ^> 。其余几个特殊符号类似需要有同样的处理。
转义字符使用举例:
=========================================
@echo off
echo aaaa>a.txt
echo 第一句echo执行完毕
echo aaaa^>a.txt
echo 第二句echo执行完毕
pause
=========================================
比较上面的两句echo,第一句echo将信息aaaa输出到了文件a.txt,而第二句echo则在直接屏幕上显示出aaaa>a.txt
【 逻辑命令符 】

逻辑命令符包括:&、&&、||
&-它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败;
&&-当&&前面的命令成功执行时,执行&&后面的命令,否则不执行;
||-当||前面的命令失败时,执行||后面的命令,否则不执行。
=========================================
@echo off
echo ^|^|
reg add HKCU /v try /f||echo **成功**
reg add HKCU1 /v try /f||echo **失败**
echo ^&^&
reg delete HKCU /v try /f&&echo **成功**
reg delete HKCU /v try /f&&echo **失败**
echo ^&
reg delete HKCU /v try /f&echo **成功**
reg delete HKCU /v try /f&echo **失败**
pause
=========================================
执行reg add或reg delete后,系统会给出执行结果;我们通过echo命令也给出了“执行结果”。对比系统和我们自己给出的结果,既可以验证逻辑命令的判断机理。
[编辑本段]常用DOS命令释义

文件夹管理 】

cd 显示当前目录名或改变当前目录。
md 创建目录。
rd 删除一个目录。
dir 显示目录中的文件和子目录列表。
tree 以图形显示驱动器或路径的文件夹结构。
path 为可执行文件显示或设置一个搜索路径。
x 复制文件和目录树。
【 文件管理 】

type 显示文本文件的内容。
将一份或多份文件复制到另一个位置。
del 删除一个或数个文件。
move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)
ren 重命名文件。
replace 替换文件。
attrib 显示或更改文件属性。
find 搜索字符串。
fc 比较两个文件或两个文件集并显示它们之间的不同
【 网络命令 】

ping 进行网络连接测试、名称解析
ftp 文件传输
net 网络命令集及用户管理
telnet 远程登陆
ipconfig显示、修改TCP/IP设置
msg 给用户发送消息
arp 显示、修改局域网的IP地址-物理地址映射列表
【 系统管理 】

at 安排在特定日期和时间运行命令和程序
shutdown立即或定时关机或重启
tskill 结束进程
taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
tasklist显示进程列表(Windows XP Home Edition中没有)
sc 系统服务设置与控制
reg 注册表控制台工具
powercfg控制系统上的电源设置
对于以上列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?
[编辑本段]语句结构释义

类似于C语言,批处理也有它的语句结构。批处理的语句结构主要有选择结构(if语句)、循环结构(for语句)等。
【 if语句(选择结构) 】

if语句实现条件判断,包括字符串比较、存在判断、定义判断等。通过条件判断,if语句即可以实现选择功能。
1、字符串比较
if语句仅能够对两个字符(串)是否相同、先后顺序进行判断等。其命令格式为:
IF [not] string1 compare-op string2 command1 [else command2]
其中,比较操作符compare-op有以下几类:
== - 等于
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
选择开关/i则不区分字符串大小写;选择not项,则对判断结果进行逻辑非。
字符串比较示例:
===============================================
@echo off
set str1=abcd1233
set str2=ABCD1234
if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!)
if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)
echo.
set /p choice=是否显示当前时间?(y/n)
if /i not %choice% EQU n echo 当前时间是:%date% %time%
pause>nul
===============================================
对于最后一个if判断,当我们输入n或N时的效果是一样的,都不会显示时间。如果我们取消开关/i,则输入N时,依旧会显示时间。
另外请注意一下几个细节:1-echo str1^<str2和echo str1^>=str2;2-echo.。
2、存在判断
存在判断的功能是判断文件或文件夹是否存在。其命令格式为:
IF [NOT] EXIST filename command1 [else command2]
===============================================
@echo off
if exist %0 echo 文件%0是存在的!
if not exist %~df0 (
echo 文件夹%~df0不存在!
) else echo 文件夹%~df0存在!
pause>nul
===============================================
这里注意几个地方:
1-存在判断既可以判断文件也可以判断文件夹;
2-%0即代表该批处理的全称(包括驱动器盘符、路径、文件名和扩展类型);
3-%~df0是对%0的修正,只保留了其驱动器盘符和路径,详情请参考for /?,属高级批处理范畴;
4-注意if语句的多行书写,多行书写要求command1的左括号必须和if在同一行、else必须和command1的右括号同行、command2的左括号必须与else同行、command1和command2都可以有任意多行,即command可以是命令集。
3、定义判断
定义判断的功能是判断变量是否存在,即是否已被定义。其命令格式为:
IF [not] DEFINED variable command1 [else command2]
存在判断举例:
===============================================
@echo off
set var=111
if defined var (echo var=%var%) else echo var尚未定义!
set var=
if defined var (echo var=%var%) else echo var尚未定义!
pause>nul
===============================================
对比可知,"set var="可以取消变量,收回变量所占据的内存空间。
4、结果判断
masm %1.asm
if errorlevel 1 pause & edit %1.asm
link %1.obj
先对源代码进行汇编,如果失败则暂停显示错误信息,并在按任意键后自动进入编辑界面;否则用link程序连接生成的obj文件,这种用法是先判断前一个命令执行后的返回码(也叫错误码,DOS程序在运行完后都有返回码),如果和定义的错误码符合(这里定义的错误码为1),则执行相应的操作(这里相应的操作为pause & edit %1.asm部分)。
另外,和其他两种用法一样,这种用法也可以表示否定。用否定的形式仍表达上面三句的意思,代码变为:
masm %1.asm
if not errorlevel 1 link %1.obj
pause & edit %1.asm
【 for语句(循环结构) 】

for语句可以实现类似于C语言里面的循环结构,当然for语句的功能要更强大一点,通过不同的开关可以实现更多的功能。for语句有多个开关,不同开关将会实现不同的功能。
1、无开关
无开关的for语句能够对设定的范围内进行循环,是最基本的for循环语句。其命令格式为:
FOR %%variable IN (set) DO command
其中,%%variable是批处理程序里面的书写格式,在DOS中书写为%variable,即只有一个百分号(%);set就是需要我们设定的循环范围,类似于C语言里面的循环变量;do后面的command就是循环所执行的命令,即循环体。
无开关for语句举例:
===============================================
@echo off
for %%i in (a,"b c",d) do echo %%i
pause>nul
===============================================
2、开关/L
含开关/L的for语句,可以根据set里面的设置进行循环,从而实现对循环次数的直接控制。其命令格式为:
FOR /L %%variable IN (start,step,end) DO command
其中,start为开始计数的初始值,step为每次递增的值,end为结束值。当end小于start时,step需要设置为负数。
含开关/L的for语句举例(创建5个文件夹):
===============================================
@echo off
for /l %%i in (1,2,10) do md %%i
pause
===============================================
上例将新建5个文件夹,文件夹名称依次为1、3、5、7、9。可以发现,%%i的结束值并非end的值10,而是不大于end的一个数。
3、开关/F
含开关/F的for语句具有最强大的功能,它能够对字符串进行操作,也能够对命令的返回值进行操作,还可以访问硬盘上的ASCII码文件,比如txt文档等。其命令格式为:
FOR /F ["options"] %%variable IN (set) DO command
其中,set为("string"、'command'、file-set)中的一个;options是(eol=c、skip=n、delims=xxx、tokens=x,y,m-n、usebackq)中的一个或多个的组合。各选项的意义参见for /f。一般情况下,使用较多的是skip、tokens、delims三个选项。
含开关/F的for语句举例:
===============================================
@echo off
echo **No Options:
for /f %%a in ("1,2,10") do echo a=%%a
echo **Options tokens ^& delims:
for /f "tokens=1-3 delims=," %%a in ("1,2,10") do echo a=%%a b=%%b c=%%c
pause
===============================================
@echo off
echo 本文件夹里面的文件有:
for /f "skip=5 tokens=3* delims= " %%a in ('dir') do (
if not "%%a"=="<DIR>" if not "%%b"=="字节" if not "%%b"=="可用字节" echo %%b
)
pause
===============================================
@echo off
echo 本文件夹里面的文件有:
dir>c:\file.txt
for /f "skip=5 tokens=3* delims= " %%a in (c:\file.txt) do (
if not "%%a"=="<DIR>" if not "%%b"=="字节" if not "%%b"=="可用字节" echo %%b
)
del c:\file.txt
pause
===============================================
对于后面的两个例子,其中options里面的delims= 是可以删除的,因为只要添加了/F开关系统就将delims的值默认为空格。
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。本例中也可以改为4,不过文件名中有空格的文件,只能显示空格以前部分
同时我们也看到了,for语句的do后面的command也是可以分行的,只需要保证command的左括号和do在同一行就可以了。
4、开关/D或/R
含开关/D或/R的for语句是与目录或文件有关的命令,一般情况下很少使用。含开关/R的命令有时候被用于通过遍历文件夹来查找某一个文件或文件夹,故而列举此例。
含开关/R的for语句举例(文件夹遍历):
===============================================
@echo off
setlocal enabledelayedexpansion
FOR /R d: %%i IN (.) DO (
set dd=%%i
set "dd=!dd:~0,-1!"
echo !dd!
)
pause
exit
===============================================
上例即可以罗列出D盘下的所有文件夹,其速度要比命令"tree d:"慢多了,不过其返回结果的实用性则远远超过了tree命令。
一般情况下我们不推荐通过遍历文件夹来查找文件,特别是在查找某些程序(比如QQ.exe)的位置时。推荐通过reg命令查找注册表来查找QQ的路径,以保证查找效率。
上例中也出现了几个新面孔,如setlocal、感叹号等。其中,感叹号其实就是变量百分号(%)的强化版。之所以要用!而不用%,是因为在for循环中,当一个变量被多次赋值时,%dd%所获取的仅仅是dd第一次被赋予的值;要想刷新dd的值,就必须首先通过命令"setlocal enabledelayedexpansion"来开启延迟变量开关,然后用!dd!来获取dd的值。
for语句是批处理里面功能最强大、使用最普遍却又最难掌握的一套命令,这也是批处理菜鸟和批处理高手最明显的一个分水岭,一旦掌握了这套命令,那么你就离批处理达人不远了!
参考http://ke..com/view/80110.htm?fr=ala0_1_1#3_2

3. 求脚本(BAT)基本命令

1.“@echo off”--我们所写的BAT一开始一般都有这一句,这一句的作用是:使所有的命令响应隐藏。“@”--本行命令不回显。(本来如果你用echo off就可以了,但是还是能够看到echo off这条命令在CMD下,影响美观) 2.“color 1e”--设置默认的控制台前景和背景颜色。当前我设为蓝底黄字,具体颜色请在CMD下用“color /?”查询。 --这里又提到了这个参数“/?”,一般CMD下命令后加“/?”就会显示这条命令的帮助。 3.“rem”--注释作用,批处理执行过程中前不执行它,rem 后的字符只作注释作用。
4.“title”--设置命令提示窗口的窗口标题。默认为“cmd”。改成自己喜欢的多有个性,嘿嘿。
5.“cls”--不多说,清屏命令。主要是怕前面的一些空白或字符出现影响美观。
6.“set”--这个命令的作用很大,请用“set /?”查询具体使用方法。本例“set topip=172.16.”是将一个名为“topip”的变量值设为“172.16.”。注意CMD下变量的设置不区别数字与字符,能够自动根据提供的值调整。下行“set theip=0.0”同理。
7.“echo .”--在新行中显示一个“.”。echo命令能显示其后的comment。这里提几个有趣实用的用法--“echo.”,注意与前面的不同,“echo”与“.”间无空格。这条命令如同一个回车,在新行不显示任何信息并换行。“echo ”,实现响铃的提示音。后面一个字符的输入方法是在CMD下用“ctrl+G”,而这个字符得到的方法是CMD下用命令“echo "ctrl+G" >ex.txt”,存入ex.txt文件,再从那里提取出来的。嘿嘿,如果你懒得做,就我在上面提供的字符喽。
8.“if”--这条命令也会经常用到,请用“if /?”学习更多信息。本例“if not exist scanipc.exe (echo 文件错误!……) ”,实现功能:当同级目录下不存在“scanipc.exe”时,提示“文件错误!……”。否则不提示。“if not exist filename ”在批处理中使用比较多些。
9.“:top”,设置一个标志点,标志名为“top”。“:”的作用就是设置标志。网上有文章说“使用"::comment"作为注释比"rem comment"执行效率更高。”我相信,这里也建议大家,如果BAT中注释较多时,请使用“::comment”设置。
10.“set /p pno=”--设置一个变量,并接受用户输入。BAT不需要预先声明变量,只在需要时设置。参数“/p”:将变量数值设成用户输入的一行输入。
11.“if %pno% gtr 9 gotoonerrorspno”--检验用户输入值是否大于9,是,则转到一个指定标志点。这里注意BAT中变量引用时要在前后加“%”,但在if语句中可有可无,具体应用大家多写几遍就有体会。
12.“goto label”--无条件跳转到指定标志位并向后执行。BAT好像只有这么一个跳转语句了,作用不用我说,用了就知道。注意不要构成死循环。

小结:到此,完成了颜色设置、注释版权说明、标题设置、变量初始化、欢迎信息、功能界面初始化、标志点设置(因为欢迎信息只显示一次而功能界面要多次使用所以将标志点设置在欢迎信息的后面。)命令的接受与跳转。;功能界面一般要用“tab”键调整相对位置,才能起到美观的效果。请多练习几遍领会。;大家在写脚本过程中要注意标志点的设置位置,才能起到合适的效果。一般写过几个脚本会有些感受。;接着接受用户输入后“cls”清屏开始执行指定功能。注意这个cls的作用。因为清屏可以在此时,也可以在每个命令执行之前,但如果在每个命令执行之前用的请,那么要写的cls就多了,于是把cls写在这里合适,方便节约快捷。

大家在写脚本时也应当注意这方面的技巧,将使你写出更加高效节约方便的代码。在每次写完脚本后合理地整合一下自己的代码。能积累不少经验。;另外,鉴于部分人仍不知道如何建立BAT文件与运行,请:打开记事本,写入代码,保存,保存类型为“所有文件*.*”,文件名为“name*.BAT”。保存后,双击运行。因为一般BAT运行很快,所以你可能只看到窗口一闪就消失了,那么你可以在exit 之前加pause确保能看见运行结果。到此,你应该能够写一个很简单的脚本了,实现一些界面控制。

例1: @echo off color ca title 这是我第一个BAT脚本。 echo 这是我第一个BAT脚本。不错啊。 pause >nul exit 第二节:(提一些好用的命令)以下设置的都是功能段,在“goto step%pno%”跳转到相应功能段后,开始执行相应功能。一般命令段: step1:ping命令。(在echo中变量的引用请注意前后加“%”号,否则会导致程序出错。)我们常用的ping命令:其实很简单,自己看帮助啦。本句“ping %topip%%theip% -n 1 |findstr 100%>nul”将ping 只发送一次数据包,这样命令执行起来就快多了,但这样所会引起一定概率的误判,而我们在内网这种概率很低,低到可以忽略。所以本人使用参数“-n 1”减少执行时间。将结果不回显而通过管道命令“|”送给findstr分析,findstr查找是否存在“100%”,并将回显“丢弃”--“>nul”。因为如果ping一台主机如果返回的结果有“100%”存在说明“不在线。或者有防火墙阻挡。”。所以用findstr确定字符串“100%”的存在性,因为 findstr也有回显,但我们并不需要,所以将它“丢弃”,使用参数“>nul”将指定命令回显丢弃。(这一句命令是重点,请仔细领会。)又因为findstr确定指定字符串的存在性后会设定环境变量“errorlevel”的值,所以我们根据“if %errorlevel% equ 0 (command)”,判断findstr的执行结果就行了,也就不需要有回显。 “errorlevel”作用很大,一般命令行下的命令执行后都有一个特别的errorlevel,我们就可以根据相应的“返回值”作出相应判断并执行相应功能。findstr如果找到指定字符串,则有errorlevel=0,说明:IP不在线。那么既然不在线,我们就没有向下执行的必要了,直接跳回top界面功能接受下一次指令。如果IP有不同回应,说明在线,则开始检测共享。“net view \\%topip%%theip%\”--查看指定IP的共享清单。net详细命令请自行查阅。列出共享清单后返回功能界面。 step2:打开共享一。“explorer \\%topip%%theip%\”,用资源管理器打开指定的IP根。注意语法,其它也没有什么。 step3:IPC$空连接。“net use \\%topip%%theip%\ipc$ "" /user:"administrator"”,一个很老的漏洞,但也许内网还有机子存在哩,嘿嘿,语法就是这样。 step4:一般信息。“ipconfig /all”--用于得到本机的IP与MAC等信息,很好用的命令。语法如示。 “nbtstat -na %topip%%theip%”--用于得到他方机子的一些信息,语法如示。另请自查帮助。 step5:Scanipc。用命令行打开了一个程序而已。在命令行下执行其它命令也就是这样啦。 step6:返回时间。“net time \\%topip%%theip%”--探测指定机子时间,语法如示。 step7:远程连接。“net use \\%topip%%theip%\admin$ "" /user:"administrator"”,嘿嘿,administrator空密码连接。最简单的入侵啦,嘿嘿嘿。语法如示。 step8:本机信息。跳到另一个功能界面执行相应功能。 step9:高级命令。跳到另一个功能界面执行相应功能。 step0:退出程序。一个exit退出脚本。“exit”,退出CMD。 onerrorsip:实现错误提示,并重新执行step1。 onerrorspno:实现错误提示,并重新跳转到功能界面。高级命令段:引用前面已给定的IP,并对其进行一些高级操作。重新绘制功能界面。首先,注意在一个BAT文件中,不允许出现有标志名的重复。 step11:条件连接。设定两个变量,分别为用户名与密码。注意到有一个默认的功能。实现原理是,当接受到用户输入为空时(即一个回车),变量将保持不变。条件连接语法如示。比前面远程空密码连接更高级一点,嘿嘿。 step12:打开共享。打开已经连接成功的对方计算机的指定盘。打开指定盘语法如示。 step13:发送消息。向对方发送消息。要求双方的messager服务开启,否则无法发送成功。发送消息语法如示。 step14:远程关机。设置关机时间与关机理由,用shutdown程序关闭对方计算机,嘿嘿,恶作剧。要求你连接成功,并有 shutdown程序支持。shutdown语法自查帮助。 step15:溢出CMD。嘿嘿,溢出到对方的CMD下,算是一个真正的入侵了。当然需要用户名与密码喽。要求用户名与密码正确并对方默认支持远程管理。并有psexec程序支持。psexec语法如示,并请自查帮助。 step16:结束进程。嘿嘿,不说也知道,结束对方已知进程。要求连接成功并有pskill程序支持。恶作剧类,有恶意成分。嘿嘿。小心使用。 step17:ipc$连接。同step3. step18:断开连接。断开与对方的连接,就是擦屁股啦,以免让对方有所察觉。这个好习惯要养成。语法如示。 step19:一般命令。返回前面一个功能界面。 step20:结束程序。退出。 step110:AT命令,令对方在指定时间运行指定命令。有点像木马,嘿嘿。要求连接成功。因为节约变量,所以引用了前面的暂不使用的变量。好习惯。哈哈。 step111:telnet。远程telnet。不要说你一点都不知道,语法如示并请自查帮助。 step112:更改主IP。主要是为了使我们的使用方便,对某个特定IP段探测能够简化输入。如主IP改成“172.16.130.”,那么专门对130探测,而且输入IP时只需输入最后位,嘿嘿,多方便啊。 step113:任意命令。主要是接受用户输入并执行用户的输入罢了,结构如示。本机信息段:主要是对本机信息的一些查询语法。 stepm1:ipconfig,不说了。但请注意到,在功能界面的实现上有一点,“&”符号,因为“&”符号在CMD下是命令连接符,如果光用“&”会让BAT误解为其后的都是命令。但我们只是希望输出一个“&”罢了,于是用“^”符号连接符表明只是输出“&”,而不是实现命令连接。这里提一下“&”命令连接符,例如:echo frist&echo second.同效于: echo frist echo second. 只是实现结合两行命令在同一行实现。类如一个很简单的批处理啦。再提一下“^”符号连接符,对一些特殊符号可能在CMD下无法正确如愿显示,可用“^”连接,以达到如期效果。用了“^”在文本中占了一位空间,但在输出时它并不显示,所以注意界面的布置。 stepm2:本机进程。利用命令行下的进程工具查看进程。要求pslist程序支持。 stepm3:本机用户。就是查询一下本机用户,也许会发现机了被动过的痕迹。 stepm4:结束进程。在命令行下结束本机进程。要求有pskill程序支持。 stepm5:本机端口。也许能看出被攻击或被入侵的痕迹。语法如示。 stepm6:共享情况。看看本机的共享是否真的如你所想,如你所见。否则请注意安全喽。语法如示。 stepm7:启动项值。在命令行下导出启动项值并给出结果。比魔法兔子什么的快多了,就是界面不是很好看,呵呵。语法如示。 stepm0:退出程序。退出。小结:到此,您学习过了一些有用的命令与应用。以及大部分的网络命令与外部程序的使用。接下来你可以模拟IP小工具写出适合更自己的IP小工具哦。注意每执行完一项功能后要用goto返回功能界面,否则脚本无条件向下继续执行。;errorlevel的应用。在BAT中,errorlevel的作用很大,大家在使用过程中通过多次接触,感受一下如何玩转errorlevel。在执行完一个程序后,可以用echo %errorlevel%查看程序运行后是如何设定errorlevel的值。;if的应用。在BAT中,if语句的作用也很大,特别与errorlevel结合实现自动判断。以及一些基本条件判断。请查看"if /?" 学习更详细的说明。;变量的接受与传递。这方面的感觉需要大家多写BAT才能有所感触。如何合理与高效的应用变量,能使你的脚本更加漂亮。计算机语言都是实践性很强的,我们学习理论只是基础,通过大量的实践才能真正掌握一门语言的应用。 第三节:(一些应用技巧与命令)接下来我们看我的“代理服务器搜索组件 (ver 2.1)”, 1.“>”与“>>”的区别。 “>”--把指定数据传送到指定文件或区域。有覆盖作用,从文件头开始重写文件。如指定文件不存在,则新建文件并存入指定数据。 “>>”--以追加方式将指定数据传送到指定文件或区域。从文件结尾开始写入指定内容。这两个功能有区别,请注意选择合适的传送方式传送数据。例如:“echo 文本内容。>link.txt”与“echo 文本内容。>>link.txt”。若本不存在文件link.txt或文件link.txt内容为空,那么两条命令的运行结果相同。但如果link.txt不为空,那么第一条命令将清除link.txt所有内容并存入数据“文本内容。 ”保存。而第二条命令只在link.txt的文件尾(另起一行,注意每一个“>>”都会另起一行写入新数据)追加数据“文本内容。”而以前的内容保持不变。还要特别提一个前面说过的“丢弃”用法“>nul”,因为我们有时候只需要命令的运行而并不需要看到命令的运行结果以及回显,但这些命令又会出现我们并不需要看到的回显,影响美观。故在其后追加“>nul”,丢弃回显。 2.循环语句的说明。例2: :puship set /p tip= if %tip%==%tbip% goto step1 set tbip=%tip% echo %tip% >>link.txt goto puship 本例中“if %tip%==%tbip% goto step1”与“if %tip% equ %tbip% goto step1”效果一样。本例的作用是接受用户帖入数据。关键技术在于:因为用户帖入数据我们不能使用户每次输入都询问是否结束,而需要实现“ 智能化”的判断,但如何以最少的代码、最简单的方法实现所谓的“智能化”呢。分析用户输入情况:因为一般用户帖入数据都不会出现重复,所以我们利用这个特点,分析用户的数据,当用户帖入列表时,分析数据并将数据存入相应文本,以备后用。当用户粘帖文本结束后,再加一个回车,因为最后一次变量没有接受到任何修改,于是保持默认不变(也就是之前的数据。),再通过我们之前的数据备份对照,分析是否不变,是,则跳出循环。这样,我们通过两个变量以一个IF比较实现相对简单的“智能化”。嘿嘿,这一点代码想了我一个小时。这么说不知道大家是否能理解。请仔细参透例2的技术要点。 3.“FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) do (set /a Allip=Allip+1>nul)” 这句FOR语句是复杂的杂合语句。首先请用for /?查阅详细用法,这里不再复述。但是特别要提一点的就是批处理与直接命令行下的CMD的区别在FOR语句上。批处理时,变量引用需要有两个“%”号,否则无法正确执行,而CMD下不用,只需一个“%”。 “set /a Allip=Allip+1>nul”--实现算术运算,变量Allip的自增,注意大小写。把回显“丢弃”。本例实现对文件link.txt内容计数,忽略以“;”开头的行。这就是为什么我们在前面要用“echo ;:文本>link.txt”来创建文本的意义所在。 4.“call toping %%i”--从批处理程序调用另一个批处理程序。调用另一个批处理“toping.bat”(因为BAT可以直接运行所以不需要后缀BAT),并有参数传递。参数来自于FOR语句的提取。“FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) ”--从link.txt的每行中提取文本,从每行的开头第一个字符开始(tokens=1),以“:”界定提取结尾(delims=: )。把提取结果赋给变量i。 5.“type”--在命令行下显示指定文件的内容。相信大家应该很熟悉,不多说了。注意与“>或>>”的结合使用,或与其它操作符的结合使用。 6.“%1”--在CMD下,一个BAT能够接受同时9位的参数,“%1~%9”,分别对应给定的参数变量。“%0”,即是文件本身。我们在使用BAT的过程中会经常遇到两个或两个以上脚本间需要参数传递。那么请好好掌握这个用法,多说无益,需要大家在实践中积累经验。 7.再说一些比较边缘,但大家比较兴趣的命令。呵呵,不要做坏事。 net user admin 123 /add net localgroup administrators admin /add net localgroup users admin /del net user admin /active:yes net user net user admin net user admin /del “net user admin 123 /add”--添加名为“admin”,密码为“123”的用户,如果“123”不写,则默认密码为空。 “net localgroup administrators admin /add”--将用户“admin”加入“administrators”组,嘿嘿,高权限。 “net localgroup users admin /del”--将“admin”从“users”组删除。呵呵,因为用户新加进去时都是“users”组,权限比较低,所以要从这个组跳出来,保证administrators组的权限正式发挥作用,如果不这么做,对方系统会默认你的最低权限。 “net user admin /active:yes”--怕没法使用没有启动,不要紧,激活这个帐号,嘿嘿。 “net user”--看看用户有多少哦。 “net user admin”--看看刚刚加的用户信息如何,是否如我所想,如我所愿呢。 “net user admin /del”--删除用户admin。 -------------------------------------------------------------------------------------------------------------------

4. bat程序怎么判断输入的变量

大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频。
今天我们学习批处理脚本中if命令条件处理控制语句,它的用法有很多,今天我们学习主要进行变量的一些判断,判断两个变量是否相等,变量的大于小于之类的操作。

输入命令if /?,可以看到这个命令的一些帮助和介绍,这个命令帮助介绍非常多,我这里用bat脚本开始芹族和大家讲解一下。

我这里准备了一个批处理,这个批处理的代码在上边图片有,也比较简单,大家可以跟着图片中的代码,自己也写一下练习一下,这里简单的介绍一下这个代码,第二行第三行是接收用户的输入,把用户的输入保存到var1和var2变量中,第四行然后通过If命令进行判断两个是否相等,如果相等的话,输出相等,不相等的话输出不相等。
这个批处理中用到的其他的命令,比如set,echo,我在以前的文章和视频中都发布过,不太熟悉的朋友可以看以前我发布的文章和视频。

运行这个批处理,输入第一个字符1,和输入第二个字符2,第三行就进行了判断,输出了两个字符不相同,这个就是if命令语句判断两个变量是否相同不相同。

再测试一下,输入两个第一个字符1和第二个字符2,这个时候会提示两个字符是相同的。

我们再看一下参数i。而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。

双击运运行一下,可以看到加了参数i,小写a和大写A是相同的。

我们把这个参数/i去掉。

再次运行,这里会提示小写a和大写A两个字符是不相同的。

我们再换一个判断变量大小的脚本,这里还是提示用户首先输入一个数字,然后根据用户输入的值进行判断,大于10会输出大于等于10,小于10的话会提示小于10。

运行这个脚本,然后输入了一个数字20,这个时候脚本提示这个数大于或等于10。

再次运行,这次输入了一个数字9,脚本提示次数小于10。
今天学的这个if命令主要进行两个变量的判断是否相等,还有变量的大于小于之类的一些操和首扮作,if命令在bat批处理脚本中用的非常多,比较重要,大家可以多练习一下,关于if判断文件是否存在,我们下篇文章在讲解。
感谢观看本篇文章,希望对你有所帮助,本文由老盖聊技术原创,我是老盖唤灶,专注分享IT互联网与电脑知识,欢迎关注,本文是出于爱心帮助人的目的所写,请随意分享转载,帮助人越多爱的力量就越大,感谢正能量传播。

5. 如何让bat脚本循环执行

让bat脚本循环执行有以下两种方法:

第一、可以直接加个%0,即执行本身,实现循环。
第二、用goto命令,去到你要重复的开头,如果要限制次数,可以先set 一个值,循环一次减1,条件命令到0退出,实现循环。

热点内容
ios应用上传 发布:2024-09-08 09:39:41 浏览:438
ios储存密码哪里看 发布:2024-09-08 09:30:02 浏览:870
opensslcmake编译 发布:2024-09-08 09:08:48 浏览:653
linux下ntp服务器搭建 发布:2024-09-08 08:26:46 浏览:744
db2新建数据库 发布:2024-09-08 08:10:19 浏览:173
频率计源码 发布:2024-09-08 07:40:26 浏览:780
奥迪a6哪个配置带后排加热 发布:2024-09-08 07:06:32 浏览:101
linux修改apache端口 发布:2024-09-08 07:05:49 浏览:209
有多少个不同的密码子 发布:2024-09-08 07:00:46 浏览:566
linux搭建mysql服务器配置 发布:2024-09-08 06:50:02 浏览:995