2012年2月26日日曜日

【悠々自炊ライフ】自炊始めました!(その3)

自炊のフィルター処理を GIMP でバッチ化できたが、複数の CPU がある場合、有効活用できていない。そんなのい・や・だ!

というわけで、バッチのマルチスレッド化に着手してみた。

基本コンセプトは、バッチ処理をキュー化し、キューを処理するバッチを並列で起動する。
バッチは、すべて windows 標準機能だけで動作するようになっている。
Java とか使えば、もっとシンプルになるのだが、バッチでやることに意味があるのだよ。フッフッフ・・・

Windows でファイルやフォルダをつかんでいるプロセスを調べる

Windows でファイルやフォルダをつかんでいるプロセスを調べる

超備忘録

Process Explorer を起動
「Find」メニューから「Find Handle or DLL...」を選択
「Handle or DLL substring」欄に、ファイル名やディレクトリ名を入力

2012年2月5日日曜日

Ant でファイル(ワイルドカード指定)の存在をチェックするタスクを書く

Ant タスクで、ワイルドカード指定してファイルの存在チェックを行いたくなった。
Ant 1.7 以降なら、以下の方法で実現可能である。(ファイルは UTF-8 で保存すること)

【build.xml】
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="main" basedir=".">

  <!-- 検索対象ディレクトリを設定 -->
  <property name="src" location="src"/>

  <!-- 最初に呼び出される。init および caution を事前に呼び出す -->
  <target name="main" depends="init, caution" />

  <!-- 指定ファイルが存在したら、"caution"プロパティをセットする -->
  <target name="init">
    <!-- 条件を満たしたら、"caution" プロパティがセットされる -->
    <condition property="caution">
      <!-- リソース数をカウントし、0件より多かったら true となる -->
      <resourcecount when="greater" count="0">
        <!-- src 以下全ディレクトリの"Abstract*.java"ファイルをカウント対象とする -->
        <fileset dir="${src}" includes="**/Abstract*.java" />
      </resourcecount>
    </condition>
  </target>

  <!-- "caution"プロパティが設定されている場合、実行される -->
  <target name="caution" if="caution">
    <fileset id="files" dir="${src}" includes="**/Abstract*.java" />
    <pathconvert pathsep="${line.separator}" property="filelist" refid="files" />
    <fail message="以下の Abstract ファイルが含まれています${line.separator}${filelist}" />
  </target>

</project>