在批處理中,如果需要把一個(gè)命令的處理結(jié)果賦值給一個(gè)變量,可以使用如下方法:
for /f "delims=" %%t in ('命令字符串') do set str=%%t echo %str%
當(dāng)命令字符串中含有%時(shí),需要轉(zhuǎn)義。使用imagemagick中的identify命令獲取圖片的寬和高:
identify -format %wx%h demo.jpg
直接在命令行中使用上述命令可以看到輸出了圖片的高和寬,但是用它放在批處理腳本中來獲取命令的輸出結(jié)果,則失敗,原因是命令字符串中含有%符號(hào),它在批處理有特殊含義,所有需要轉(zhuǎn)義,轉(zhuǎn)義的方法是使用兩個(gè)%%,正確的做法是:
for /f "delims=" %%t in ('identify -format %%wx%%h demo.jpg') set str=%%t
為什么用2個(gè)%號(hào)? 因?yàn)檫@是在批處理腳本中而非命令行下!