如何用批处理写一段判断语句
答案:5 悬赏:70 手机版
解决时间 2021-02-10 18:05
- 提问者网友:蔚蓝的太阳
- 2021-02-09 23:44
判断的对象是PING自己的IP.如果不通,写入一个文本做记录.如果通,不进行任何操作.
最佳答案
- 五星知识达人网友:零点过十分
- 2021-02-10 01:07
@echo off
ping -n 1 192.168.0.1| find "Request timed out" && goto timeout
pause
exit
:timeout
echo ip地址无法ping通>ping.log
pause
exit
将以上文字存成myping.bat就可以了
如果你想执行一个带参数的bat的话
@echo off
ping -n 1 %1| find "Request timed out" && goto timeout
pause
exit
:timeout
echo ip地址无法ping通>ping.log
pause
exit
将以上文字存成myping2.bat
在myping2文件所在目录里执行
myping2 ip地址即可
如果ping不通,则将“ip地址无法ping通”写入ping.log文件中。
ping -n 1 192.168.0.1| find "Request timed out" && goto timeout
pause
exit
:timeout
echo ip地址无法ping通>ping.log
pause
exit
将以上文字存成myping.bat就可以了
如果你想执行一个带参数的bat的话
@echo off
ping -n 1 %1| find "Request timed out" && goto timeout
pause
exit
:timeout
echo ip地址无法ping通>ping.log
pause
exit
将以上文字存成myping2.bat
在myping2文件所在目录里执行
myping2 ip地址即可
如果ping不通,则将“ip地址无法ping通”写入ping.log文件中。
全部回答
- 1楼网友:渊鱼
- 2021-02-10 04:04
暂时不会在批处理中检查PING的结果。。
- 2楼网友:第幾種人
- 2021-02-10 03:23
批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为bat。 1、 rem rem 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。例: rem 你现在看到的就是注解,这一句将不会被执行。在以后的例子中解释的内容都rem 会放在rem后面。请大家注意。 2、 echo echo 是一个回显命令主要参数有off和 on,一般用echo message来显示一个特定的消息 。例: echo off rem 以上代表关闭回显即不显示所执行的命令 echo 这个就是消息。 rem 以上代表显示“这就是消息”这列字符 执行结果: c:\>echo.bat 这个就是消息。 3、 goto goto 即为跳转的意思。在批处理中允许以“:xxx”来构建一个标号然后用goto :标号直接来执行标号后的命令。例 :label rem 上面就是名为label的标号。 dir c:\ dir d:\ goto label rem 以上程序跳转标号label处继续执行。 4、call call 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。例: 批处理2.bat内容如下: echo 这就是2的内容 批处理1.bat内容如下: echo 这是1的内容 call 2.bat echo 1和2的内容全部显示完成 执行结果如下: c:\>1.bat 这是1的内容 这就是2的内容 1和2的内容全部显示完成 5、pause pause 停止系统命令的执行并显示下面的内容。例: c:\> pause 请按任意键继续 . . . 6、 if if 条件判断语句,语法格式如下: if [not] errorlevel number command if [not] string1==string2 command if [not] exist filename command 说明: [not] 将返回的结果取反值即“如果没有”的意思。 errorlevel 是命令执行完成后返回的退出值 number 退出值的数字取值范围0~255。判断时值的排列顺序应该又大到小。返回的值大于或等于指定的值时条件成立。 string1==string2 string1和string2都为字符的数据,英文字符的大小写将看做不同,这个条件中的等于号必须是2个(绝对相等),条件想等后即执行后面的 command exist filename 为文件或目录存在的意思。 if errorlevel这条语句必须放在某一个命令后面。执行命令后由if errorlevel来判断命令的返回值。
- 3楼网友:猎心人
- 2021-02-10 02:35
@echo off
rem 关闭回显
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
rem 获取本机IP
for /f "delims=" %%i in ('ping %ip%') do (
for %%a in (%%i) do (
if %%a==timed (goto error))
)
rem ping本机ip,对获取到的结果逐项判断,如果有"timed"的出现,说明发生了"Request timed out",视为失败,转到error,否则转到exit
goto exit
:error
echo %date% %time% 获取到的IP为%ip%,Ping发生错误>>error.txt
rem 输出错误信息到error.txt
:exit
代码结束,运行时可以把rem注释删掉,以免出错,测试成功的.
- 4楼网友:一把行者刀
- 2021-02-10 02:16
批处理也得对结构进行判断,其步骤是:对了自己的IP好像总能ping通
先用命令 ping IP >C:\11.txt
然后对11.txt进行字符串判断 如果找到"Request timed out."说明没ping 通把文件删除
没找到就保留文件
这样吧
ping IP>C:\11.txt
For /F "delims=" %%l In (C:\11.txt) Do(
set a = %%l
set b =Request timed
echo %a%|findstr %b%)>nul&&start"" del C:\11.txt
没运行!不知道对不对,自己改改吧 原理就是这样
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯