2015-07-28 35 views
0

我想使用cwebp編碼器將一組PNG圖像轉換爲WEBP圖像。 我設法使用JAVA程序來做到這一點,但現在我想寫一個批處理文件來完成這項任務。 我已經得到了metal03326的solution經過一番搜索。 但我想在這個修改9個補丁圖像應該跳過。Windows批處理:查找字符串包含for循環中的另一個字符串

這裏是我做過什麼:

pushd %1 

set "DOTNINE=.9" 

echo %DOTNINE% 

for /f "delims=" %%n in ('dir /b /s /a-d-h-s') do (

set MY=%%~nn 

set MY=%MY:~-2% 

rem IF NOT ".webp" == "%%~xn" IF NOT "MY" == ".9" ("%~dp0cwebp.exe" -q 80 "%%n" -o "%%n.webp") ELSE (echo File already WEBP.) 

) 

popd 

但我發現了一個語法錯誤。上面的代碼有什麼錯誤?

+0

這裏顯示在Win 7.無語法錯誤,它是整個批處理腳本? – wOxxOm

+0

刪除了'android'標籤,因爲這個問題與Android無關。 –

回答

1

要重新分配一個變量(即MY)多次在一個循環中,你必須使用delayed expansion

setlocal enableDelayedExpansion 
pushd "%~1" 
for /f "delims=" %%n in ('dir /b /a-d-h-s') do (
    set MY=%%~nn 
    set MY=!MY:~-2! 
    IF NOT ".webp" == "%%~xn" IF NOT "!MY!" == ".9" ("%~dp0cwebp.exe" -q 80 "%%n" -o "%%n.webp") ELSE (echo File already WEBP.) 
) 
popd 
+0

謝謝!它做了這項工作:) 還有一件事 - 有沒有辦法在一個地方做到這一點,即,而不是創建我的變量在IF NOT條件下做? – userv

+0

'set「MY = %%〜nn」&set「MY =!MY:〜-2!」 &IF .....',例如。另一種方法是使用'for/f'。 – wOxxOm

相關問題