で簡単な、バッチファイルの扱い方を教えて頂きました。
ありがとうございます。
おかげさまで、とりあえず、基本的なバッチファイルを扱えるようにはなりました。
ですが、確認したところ、もとのソースコードが間違えているらしく、
縦横の判断が出来ず機能しません。
本当なら以下のコードで画像の縦横の長さを確認して、
長編を900pxにするバッチファイルです。
※ImageMagickが必要ですが
エラーはなく動作するのですが、縦横の判断が出来ず、
縦長の画像でも幅を900pxにしてしまいます。
「GEQ」を「LSS 」にすると、今度は縦をすべて900pxにするので、
条件式より、変数の扱いがおかしいような気がします。
ですがソースを見ても自分では特におかしいようには思いません。
すいませんが、バッチファイルに詳しい方、間違えているところを教えて下さい。
元のソースコードはこちらです。
長辺900pxにリサイズするbatファイル
↑ こちらソースの動作も同様です。
そのため、自分なりにおかしいと思うところを修正しています。
※修正しても症状は同じなのですが。
※扱う画像は「.jpg」にしています。
すいませんが、バッチファイルの扱いに詳しい方、よろしくお願いします。
追記
ご解答を頂いてもすぐに応対出来ないかもしれないです。
※翌日以降の返答になるかもしれません。
すいませんが、よろしくお願いします。
for %%f in (*.jpg) do ( REM 画像の縦を取得 for /f "usebackq tokens=*" %%i in (`identify -format '%%w %%h'`) do @set HEIGHT=%%h REM 画像の幅を取得 for /f "usebackq tokens=*" %%j in (`identify -format '%%w %%h'`) do @set WIDTH=%%w if !HEIGHT! GEQ !WIDTH! ( REM 縦 >= 横幅 convert -resize x900 %%f %%~nf_resized.jpg ) else ( REM 縦 < 横幅 convert -resize 900x %%f %%~nf_resized.jpg ) )
for %%f in (*.png) do ( REM 画像の縦幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format '%%h' %%f`) do @set HEIGHT=%%i REM 画像の横幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format '%%w' %%f`) do @set WIDTH=%%i REM アドバイスにより追加 set HEIGHT=!HEIGHT:'=! set WIDTH=!WIDTH:'=! if !HEIGHT! GEQ !WIDTH! ( REM 縦幅 >= 横幅 convert -resize x900 %%f %%~nf_resized.png ) else ( REM 縦幅 < 横幅 convert -resize 900x %%f %%~nf_resized.png ) )
for %%f in (*.png) do ( REM 画像の縦幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format "%%h" %%f`) do @set HEIGHT=%%i REM 画像の横幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format "%%w" %%f`) do @set WIDTH=%%i if !HEIGHT! GEQ !WIDTH! ( REM 縦幅 >= 横幅 convert -resize x900 %%f %%~nf_resized.png ) else ( REM 縦幅 < 横幅 convert -resize 900x %%f %%~nf_resized.png ) )
setlocal enabledelayedexpansion REM ↑このコマンドは必要! for %%f in (*.png) do ( REM 画像の縦幅を取得 REM "%%h"でくくる、「'」でくくると文字扱いになる=条件式が機能しない for /f "usebackq tokens=*" %%i in (`identify -format "%%h" %%f`) do @set HEIGHT=%%i REM 画像の横幅を取得 for /f "usebackq tokens=*" %%i in (`identify -format "%%w" %%f`) do @set WIDTH=%%i if !HEIGHT! GEQ !WIDTH! ( REM 縦幅 >= 横幅 convert -resize x900 %%f %%~nf_resized.png ) else ( REM 縦幅 < 横幅 convert -resize 900x %%f %%~nf_resized.png ) )
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/27 02:10
2018/03/27 02:12
2018/03/27 02:36
2018/03/27 02:52
2018/03/27 03:03
2018/03/27 03:23