ご存知, jpegtran , UNIX/LINUX 系ではどうか知らないが, Windows で使うとすごーく不便。元フォルダに上書きしてくれる bat ファイルを,自分用に作ってみた。
@echo off
setlocal enabledelayedexpansion
pushd %~dp0
for %%a in (%*) do (
set OutFile=%%~na%%~xa
jpegtran -copy none -optimize -outfile !OutFile! %%a
for %%b in (!OutFile!) do set fileSize=%%~zb
if !fileSize! LSS %%~za (copy !OutFile! %%a>nul)
del !OutFile!
)
popd
exit
この bat は,基本的には,作られたファイルで元ファイルを上書きする。ただ,ときどき元ファイルよりサイズが大きくなる場合があるので,その場合は元ファイルを残す。 1 遍に処理できるファイル数は高々 100 程度。その辺は, cmd.exe の文字数制限のせいのような気がする。
bat ファイルの使い方:
- テキストエディタを使い上記のコードで bat ファイルを作る。名前は, ‘jpegtran.bat’ ナンチャラ。ここから落とした txt ファイルの拡張子を bat に変えて使っても OK 。
- 作った bat ファイルを jpegtran.exe と同じフォルダに入れる。
- 最適化したい jpeg ファイルを, bat ファイルのアイコンにドラッグ&ドロップする。
- 以上
もしこの bat を利用される場合は,「上書きするので,元ファイルは残らない」ということに留意してください。
サイトの jpeg ファイルを全部最適化した。おかげさんで, PageSpeed Insights の図に関する小言も消えたし,パチパチ。
参考:
1. DOS コマンド一覧
2. Jpegtran のヘルプ
追記(2016/10/29):
結構需要のある記事なので,使い方の追記を書くことにした(爆)。基本的には, jpeg ファイルを jpegtran.bat 上にドラッグ&ドロップするだけなのだが,以下のような使い方もできる。
jpegtan.exe と jpegtran.bat の入ったフォルダは PC 内のどこにおいてもよい。ただ,デスクトップに jpegtran.bat のショートカットを作っておくと便利である。ショートカットは bat 自身と同じように使える。
この bat は,処理したい jpeg の入っている範囲で検索をかけて見つかったものを「すべて選択」してドラッグ&ドロップすれば,一括処理も可能である。
「Windows で使える jpegtran 用上書き bat ファイル。」への9件の返信
こんにちは
唯一batを書いたのは前の会社。
よくネットワークが通じなくなるので自分できりわけできるようにネットワーク診断用を書いてあげました。
今はシェルばっかりですね。当然ですけど、しかし、
unixならとかソラリスならとかmacosならと微妙に違いが
ありますので注意が必要ですね。
それとコードを書いたとしても数十行ですからね。
c言語とかhtmlとかphpとかの
コードがながすぎると苦痛です(笑い)
くりくりさん,こんにちは。
久しぶりに bat 書きましたよ。まぁ, sh より機能は少ないですが,ちょこっとやらせるには便利です。もっとも,Windowsのバージョンごとに拡張されてきて,便利になった半面,汎用的に書く場合は,結構面倒らしいです。今回の場合は,全くの私用なので特に問題ないですが。
ところで,台風は一応抜けたみたいですが,大丈夫でしたか。
おはようございます。
多少進路からずれた北関東だったんで雨くらいでした。
直撃?だったぽく南関東の方が被害がおおきいみたいです。
シェルの方は
メンテナンス用にシェル書いて後はcronでうごかすだけですからね。batはタスクスケジューラーというのがあるみたいですね。
http://www.atmarkit.co.jp/ait/articles/1305/31/news049.html
くりくりさん,こんにちは。
> 多少進路からずれた北関東だったんで雨くらいでした。
それは,よかったです。本日,我がほうは,秋晴れです。「一片の雲もなし」とはいきませんが。
昨日は,「後の月」だったんですが,見忘れました。久しぶりに puppy linux を弄っていたら,忘れてしまいました(爆)。
> batはタスクスケジューラーというのがある
これ,とーきどき使いますが, VISTA から見かけが変わって,いまだに使い慣れない私です。
そうそう,「フローリアンのパッチ」というのが,
foo='() { echo not patched; }'
で調べた件で, CentOS だと 2 つ目のパッチで対処したようですね。あとは,情勢を見ながら,待ちの一手でしょうか。bash -c foo
おはようございます。
>puppy linux
初めて知りましたが、日本語版もでてるし、
デスクトップ環境をみると結構充実してそうですね。
>後の月
俺は両方みてません(笑)
くりくりさん,こんばんは。
> デスクトップ環境をみると結構充実してそうですね。
軽いんです。ちょっと,心づもりがあって,LOOX T93B を引っ張り出してきたんですが, puppy でもきびしいなぁと思いながらいじってます。
> 俺は両方みてません(笑)
ハハ,おりよく,今夜は,月食ですよぉ。しかし,我がほうは雲が出てきちゃいました。どうなりますやら。
皆既月食 2014年10月8日
おはようございます。
あら!!
月食を記事にされてると思いきましたが、
まだなのかな?
todosの方にも書きましたが、散歩中みることができました。
ただ、朧月のような?三日月のような?感じでいわれないとわからなかったでしょう。
今回は散歩中みれたのでよかったです。
くりくり,こんにちは。
はーい。やっと書きました。
なにしろ,撮影に失敗して,大した画像もなかったので, Puppy と抱き合わせにしようかなとか思ってて,遅くなっちゃいました m(_”_)m。
[…] 名前:o6asan 投稿日:2015/05/27(水) 22:51:52 ID:e4d33207c 返信 […]