批处理 命令执行结果赋值与比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理 命令执行结果赋值与比较相关的知识,希望对你有一定的参考价值。
@echo off
set var1=ipconfig |find /c /v ""
if %var1 GEQ 100 (echo warning) else echo OK
需要写一个批处理命令,要求如下:
1、获取一个命令输出结果的总行数 (如:ipconfig |find /c /v "")
2、将这个总行数的数值与一个预定的数值对比,大于/等于该数值就输出warning,小于该数值就输出OK。
上面批处理的思路是先将命令执行结果赋值给一个变量var1;然后将var1与100对比,达不到我想要的结果。
不知道怎样更改这个批处理命令,求高手指点。
for /f "delims=" %%a in ('ipconfig ^| findstr /n ".*"') do set "var=%%a"
for /f "delims=:" %%b in ("%var%") do set "str=%%b"
if "%str% GEQ 100 (echo warning) else echo OK
pause
批处理如何获取命令的执行结果?
参考技术A编辑批处理文件
在每一条命令后面加 >>chk.log 即可。
当使用if %errorlevel%==值 cmmand 句式时,它含义是:如果返回的错误码值等于值 的时候,将执行cmmand操作。
一般上一条命令的执行结果返回的值只有两个,"成功"用0 表示 "失败"用 1 表示。
可以用for命令将命令结果循环输出或保存为变量或直接对命令结果在循环内进行处理
一般格式如:
for /f "delims=" %%i in ('命令') do echo get %%i
示例仅显示,其中delims表示对一行中的字符以什么分段,(示例中表示不要分段)以变量%%i代表第一段(隐含有多段时依次%% j即第2段...),循环作do后的命令。
以上是关于批处理 命令执行结果赋值与比较的主要内容,如果未能解决你的问题,请参考以下文章
bat批处理下如何像shell一样将命令执行的效果赋值给变量