echo ${file_list}
很容易将指令执行结果赋值给变量,然后通过变量在进行处理。
但是在批处理中,这种方法就不能使用了。如果需要把一个命令的处理结果赋值给一个变量,可以使用如下方法:
for /f "delims=" %%t in ('命令字符串') do set str=%%t
echo %str%
当命令字符串中含有%时,需要转义。使用imagemagick中的identify命令获取图片的宽和高:
identify -format %wx%h demo.jpg
直接在命令行中使用上述命令可以看到输出了图片的高和宽,但是用它放在批处理脚本中来获取命令的输出结果,则失败,原因是命令字符串中含有%符号,它在批处理有特殊含义,所有需要转义,转义的方法是使用两个%%,正确的做法是:
for /f "delims=" %%t in ('identify -format %%wx%%h demo.jpg') set str=%%t
还有一个需要注意的地方,
如果中间有管道,需要使用转义符 ^
例如:判断文件个数,细细体会
这个例子是在Windows环境下,映射了linux的磁盘,从Windows目录向linux指定目录拷贝文件。
::前面的省略
cd \mnt\external\workspace\%project%_CP_IMG\
for /f "tokens=*" %%i in ('dir /b ^|find /v /c "SC00*" ') do set files_num=%%i
if %files_num%==4 (
@echo ON
echo cpoy_file successed
exit 0
else (
@echo ON
echo copy_file failed
exit 1
::后面的省略
有读者可能会问,为什么不用%errorlevel%来判断,因为在使用的过程中出现过 %errorlevel% 返回值正确,但是没有拷贝到linux指定目录里面,所以不得已必须使用判断文件个数!
可以使用以下的
命令
来实现:
for /f "tokens=*" %%G in ('adb shell ls /storage ^| findstr sda') do set name=%%G
这个
命令
会遍历 /storage 目录下的所有文件和文件夹,并找到名字中包含 sda 的文件夹。然后,它会将找到的文件夹名字
赋值
给
变量
name。
1、使用for /f将其他
命令
的输出作为输入来分析,格式:for /f "delims=" %%i in ('dir ') do set b=%%i,单引号内的dir是
命令
,b是要把该
命令
执行
的结果传给的
变量
。需要注意是,确保
执行
该
命令
只返回一行数值,否则,它会只取最后一个,下面测试的代码
执行
的效果可以看出...
set/p a= |time/techo %a%pause>nul
看过一些朋友都是用下面的方法把时间写到文件,再把文件
赋值
给
变量
的方法,虽然最终结果相同,但代码繁琐,还要写临时文件、删除临时文件,毕竟不美:
@echo offtime/t >ls.txtset a=<...
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 ........................
如下代码的效果就是把第一行 MACHINE_TYPE = 12 中的 12 取出来
如下代码的效果就是把第二行 VERSION_NUMBER = 1.1.1 中的 1.1.1 取出来
如下代码的效果就是把第三行 MODEL_NAME = KK 中的 KK 取出来
set MACHINE_TYPE=""
3.1
赋值
3.1.1 给
变量
赋予一个文字字符串的值
说到
赋值
,就得先弄懂 set 这条
命令
。set 这条
命令
比较复杂,在
命令
提示符中键入 set /? 后得到的帮助信息也很多。不过,简单地说,使用 set 跟上
变量
,再用等号 = 跟上字符串就能简单地给该
变量
赋值
了。例如 set var=Hello world!...
比如我想把git代码的commitid获取以后加到文件夹上来标记文件夹中的包是哪个git 节点构建得到的。
git
命令
是git rev-parse --short HEAD
再linux系统下,只需要
执行
下面的
命令
:
commitid=`git rev-parse --short HEAD`
echo commitid=$commitid
但是在windows系统下,却...
1. 将 DIR 的结果逐条
赋值
给一系列的
变量
:
第1部分摘自:http://zhidao.baidu.com/link?url=3KM6KaZXvjjHd5TKNOGDTxdQt0K3r7jhBxhM7gYR-kX3BMeCkulWaGyk4mEbMMDzgmkrMuDtORdGEESEdJuNaa
假设有X个结果,那么就把他们分别
赋值
到
变量
k1、k2、k3……kx
脚本如下: