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=&lt... 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 脚本如下: