bat脚本中命令执行的结果赋值给变量

bat脚本中命令执行的结果赋值给变量


rem 查找ip地址举例

for /f "delims=" %%i in ( 'ipconfig /all^| find /i "ipv4" ') do set MYIP=%%i & echo %MYIP%


rem result.txt的文件内容:

rem [INFO] APP DEMO ................................. SUCCESS [  1.111 s]
rem [INFO] APP THIRD ................................ FAILED [  1.222 s]
rem [INFO] MY WEB ................................... SKIPPED [  1.313 s]


rem 查找命令:在文件内容中查找字符串 ".... FAIL " 或者 ".... SKIP " 或者 ".... ERR ",查找结果输出到tmp.txt

set MYFILE="%CD%\result.txt"

findstr "\.\.\.\.\ FAIL \.\.\.\.\ SKIP \.\.\.\.\ ERR " %MYFILE%  >  tmp.txt


rem 查找结果写文件以后,再处理文件中的结果

for /f "tokens=* delims=" %%i in (tmp.txt) do echo %%i


for /f "tokens=* delims=" %%1 in (tmp.txt) do echo %%1


for /f "tokens=1,2 delims=...." %%a in (tmp.txt) do echo %%a %%b


for /f "tokens=1,2,3 delims=...." %%1 in (tmp.txt) do echo %%2 %%3


for /f "tokens=1-3 delims=...." %%1 in (tmp.txt) do echo %%2 %%3


for /f "tokens=* delims=...." %%1 in (tmp.txt) do echo %%1


rem 也可以直接将bat命令执行的结果字符串赋值给变量,省去了中间的写文件和读文件处理的过程

for /f "tokens=1-2 delims=...." %%1 in ( 'findstr "\.\.\.\.\ FAIL \.\.\.\.\ SKIP " %MYFILE% ' ) do (set STATUS=%%2 & echo %%1 , %%2 & echo ======)


rem IF "%STATUS%" EQU "" echo " 查找失败结果为空,未找到失败信息"

IF "%STATUS%" EQU ""  (

  echo " 无失败信息,继续处理"

) else (

  echo "有失败信息,跳到结束"

 GOTO END

)


echo ##########

echo -------- %STATUS%

echo -------- %MYIP%



:END

set MYIP=

set STATUS=

set MYFILE=


  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值