for %%a in ("%DEST_IMAGE_HDPI%\default_wallpaper*.*") do (
echo %%a | findstr /C:"%THUMBNAIL_SUFFIX%" > nul
IF %errorlevel% NEQ 0 (
echo Process this file: %%a
)
)
但是以上的腳本不能運作 -- %ERRORLEVEL% 永遠回傳 "0" 值!
Google 了一下並找到解決方法:
http://www.computing.net/answers/programming/batch-for-loop-errorlevel/13528.html
跟據 IVO 的意思,FOR-Loop 裡的環境變數 (Environment variables) 會維持在最初的值,除非在腳本中啟用 "Delayed Expansion of Variables"。並將 FOR-Loop 內的全域值: %...% 變成 !...!
修改腳本後如下:
SetLocal EnableDelayedExpansion
for %%a in ("%DEST_IMAGE_HDPI%\default_wallpaper*.*") do (
echo %%a | findstr /C:"%THUMBNAIL_SUFFIX%" > nul
IF !errorlevel! NEQ 0 (
echo Process this file: %%a
)
)
EndLocal
一般 "SetLocal" 在腳本開始時加入,結束時用 "EndLocal"
沒有留言:
發佈留言