批处理(bat) 脚本将一个命令的返回结果传给一个变量
1、使用for /f将其他命令的输出作为输入来分析,格式:
for /f "delims=" %%i in ('dir ') do set b=%%i,
单引号内的dir是命令,b是要把该命令执行的结果传给的变量。
需要注意是,确保执行该命令只返回一行数值,否则,它会只取最后一个,下面测试的代码执行的效果可以看出来。
2、执行测试
2.1 bat代码如下
@echo off
echo current time is %date% %time%
for /f "delims=" %%i in ('adb shell cat /sys/class/thermal/thermal_zone0/temp') do set a=%%i
echo a=%a%
Rem 换行,注意后面有个点,中间没空格
echo.
for /f "delims=" %%i in ('dir ') do set b=%%i
echo b=%b%
Rem 换行,注意后面有个点,中间没空格
echo.
2.2执行结果
批处理(bat) 脚本将一个命令的返回结果传给一个变量1、使用for /f将其他命令的输出作为输入来分析,格式:for /f "delims=" %%i in ('dir ') do set b=%%i,单引号内的dir是命令,b是要把该命令执行的结果传给的变量。需要注意是,确保执行该命令只返回一行数值,否则,它会只取最后一个,下面测试的代码执行的效果可以看出...
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 ........................
有个问题是,你需要确定,只返回一行数值,否则,它会只取最后一个。
for /f "delims=" %%i in ('netstat -a^|findstr 50000') do (set a=%%i)
echo %a%
pause
for /f "tokens=2 delims=:(" %i in ('ipconfig /all^|find /i "ipv4" ') do set yourvar=%i
for /f "delims=" %i in ( 'ipconfig /all ^| find /i "ipv4" ') do set yourvar=%i
set/p a= |time/techo %a%pause>nul
看过一些朋友都是用下面的方法把时间写到文件,再把文件赋值给变量的方法,虽然最终结果相同,但代码繁琐,还要写临时文件、删除临时文件,毕竟不美:
@echo offtime/t >ls.txtset a=<...