結城浩のはてなブログ

ふと思いついたことをパタパタと書いてます。

here:「ここにあとで来る」ためのバッチファイルを作るスクリプト

作業ログを書くために大切な、たった一つのことの中で「プロジェクトの作業ディレクトリに移動するバッチファイル」の話を書きました。実はこのバッチファイル、hereという名前のスクリプトを使って自動生成しています。つまりhereというのは「「ここにあとで来る」ためのバッチファイルを作るスクリプト」なのですね。以下に公開します。Enjoy!

#
# here.pl
#
# Copyright (C) 2006 by Hiroshi Yuki.
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.

use strict;

my $batch_dir = "c:/your/batch/file/dir/name";

unless ($ARGV[0]) {
    print "Usage: here project-code\n";
    print "Example: here math\n";
    exit;
}

my $curdir = `cd`;
open(FILE, "> $batch_dir/$ARGV[0].bat");
print FILE "\@echo off\n";
print FILE "pushd $curdir\n";
close(FILE);

使用手順は次の通り(Windowsの場合)。

  • 準備(最初に一度だけ)
    • (1) here.plを用意し、$batch_dirをPATHの通ったディレクトリに書き換える(たとえば c:/usr/hyuki/batch)。
    • (2) pl2batを使ってhere.batを作る。
    • (3) here.batをPATHの通ったディレクトリに置く。
  • バッチファイル作成(新しいプロジェクトの場所決め)
    • (4) コマンドプロンプトで、作業するディレクトリに行く。(たとえば cd C:\novel\girl\latex
    • (5) そのプロジェクトのプロジェクトコードを考える(たとえば girl )
    • (6) hereコマンドを動かす(たとえば here girl)
    • (7) これで c:/usr/hyuki/batch/girl.bat というファイルが出来た。
  • バッチファイル実行
  • ※注意
    • いきなりバッチファイルを作りに行きます。同名のバッチファイルがあったら上書きされます。