Windows で使える jpegtran 用上書き bat ファイル。

投稿アップデート情報  追記(2016/10/29)

 ご存知, 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 ファイルの使い方:

  1. テキストエディタを使い上記のコードで bat ファイルを作る。名前は, ‘jpegtran.bat’ ナンチャラ。ここから落とした txt ファイルの拡張子を bat に変えて使っても OK 。
  2. 作った bat ファイルを jpegtran.exe と同じフォルダに入れる。
  3. 最適化したい jpeg ファイルを, bat ファイルのアイコンにドラッグ&ドロップする。
  4. 以上

 もしこの 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件のフィードバック

  1. こんにちは

    唯一batを書いたのは前の会社。
    よくネットワークが通じなくなるので自分できりわけできるようにネットワーク診断用を書いてあげました。

    今はシェルばっかりですね。当然ですけど、しかし、
    unixならとかソラリスならとかmacosならと微妙に違いが
    ありますので注意が必要ですね。

    それとコードを書いたとしても数十行ですからね。
    c言語とかhtmlとかphpとかの
    コードがながすぎると苦痛です(笑い)

    1. くりくりさん,こんにちは。

      久しぶりに bat 書きましたよ。まぁ, sh より機能は少ないですが,ちょこっとやらせるには便利です。もっとも,Windowsのバージョンごとに拡張されてきて,便利になった半面,汎用的に書く場合は,結構面倒らしいです。今回の場合は,全くの私用なので特に問題ないですが。

      ところで,台風は一応抜けたみたいですが,大丈夫でしたか。

  2. おはようございます。

    多少進路からずれた北関東だったんで雨くらいでした。
    直撃?だったぽく南関東の方が被害がおおきいみたいです。

    シェルの方は
    メンテナンス用にシェル書いて後はcronでうごかすだけですからね。batはタスクスケジューラーというのがあるみたいですね。
    http://www.atmarkit.co.jp/ait/articles/1305/31/news049.html

    1. くりくりさん,こんにちは。

      > 多少進路からずれた北関東だったんで雨くらいでした。
      それは,よかったです。本日,我がほうは,秋晴れです。「一片の雲もなし」とはいきませんが。
      昨日は,「後の月」だったんですが,見忘れました。久しぶりに puppy linux を弄っていたら,忘れてしまいました(爆)。

      > batはタスクスケジューラーというのがある
      これ,とーきどき使いますが, VISTA から見かけが変わって,いまだに使い慣れない私です。

      そうそう,「フローリアンのパッチ」というのが,foo='() { echo not patched; }'
      bash -c foo
      で調べた件で, CentOS だと 2 つ目のパッチで対処したようですね。あとは,情勢を見ながら,待ちの一手でしょうか。

  3. おはようございます。

    >puppy linux
    初めて知りましたが、日本語版もでてるし、
    デスクトップ環境をみると結構充実してそうですね。

    >後の月
    俺は両方みてません(笑)

    1. くりくりさん,こんばんは。

      > デスクトップ環境をみると結構充実してそうですね。
      軽いんです。ちょっと,心づもりがあって,LOOX T93B を引っ張り出してきたんですが, puppy でもきびしいなぁと思いながらいじってます。

      > 俺は両方みてません(笑)
      ハハ,おりよく,今夜は,月食ですよぉ。しかし,我がほうは雲が出てきちゃいました。どうなりますやら。
      皆既月食 2014年10月8日

  4. おはようございます。

    あら!!
    月食を記事にされてると思いきましたが、
    まだなのかな?

    todosの方にも書きましたが、散歩中みることができました。
    ただ、朧月のような?三日月のような?感じでいわれないとわからなかったでしょう。

    今回は散歩中みれたのでよかったです。

    1. くりくり,こんにちは。

      はーい。やっと書きました。
      なにしろ,撮影に失敗して,大した画像もなかったので, Puppy と抱き合わせにしようかなとか思ってて,遅くなっちゃいました m(_”_)m。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください