- Ruby -  のスクリプトを公開する頁


Ruby(Wikipedia): http://ja.wikipedia.org/wiki/Ruby

  ここは,(自分的に)大変使い易いスクリプト言語のRubyの使い方を書いたり,幾つかのスクリプトを公開したりする頁です.要するに覚書を記している頁です.

  主にWindows環境での使用を想定,また,Rubyのバージョンは1.8.7を使用しています.


更新履歴
  2013/01/06 ... dir_comparator.rbを公開 -> 更新箇所
  2012/09/08 ... 本頁を作成


Rubyの基本的な使い方
1. Rubyの公式サイトにアクセスする.

2. Windows用のバイナリが公開されている頁を探す.

3. ダウンロードして展開する.

4. スクリプトを書いて,"xxx.rb"など,拡張子をrbにしたファイルを作る.

5.1. Ruby実行用のバッチファイルを作り,実行する.
  Rubyの実行ファイルにパスを通すか,インストールした場所を直接指定し,"C:\ruby\bin\ruby.exe xxx.rb"みたいに1行だけ書いたテキストファイルを作成し,拡張子を"bat"にして,そのバッチファイルをダブルクリックします.

5.2. コマンドプロンプトを開いて実行する.
  バッチファイルではファイル出力等を何も指定していない場合,実行結果が見えないので,コマンドプロンプトを開き,スクリプトを作成した場所へ移動し,"C:\ruby\bin\ruby.exe xxx.rb"みたいに直接打ち込む事で,結果が出力されます.

Rubyのスクリプトを作る
  基本的な文法などは詳しいサイトが多数あるため,ここには特に書きません."逆引きRuby"の頁が基礎を覚えるには便利です.但し,Windowsでは改行コードには色々気を使う必要があるみたいで,例えばUNIX環境では,
    puts( "Haveri!" )
  と,putsと言う文字列を出力する命令を書くと自動的に改行されますが,Windowsでは,
    puts( "Haveri!\n" )
と言う書き方にしないと改行されないようです.(\nは改行を意味する記号)

  また,`(←バッククォート)と言う記号を使う事で,コマンドプロンプトで使われる命令を実行する事が出来ます.例えば,
    dlist = `dir /b`
と書く事で,ディレクトリ内のファイルの一覧が"dlist"と言う変数に格納されます.この"dir /b"はRubyの命令では無く,コマンドプロンプトの命令です.

Rubyスクリプトの一覧
  自分はWindows環境で,主にテキストの操作にRubyを使用していますが,その中である程度汎用性があると思われるスクリプトを公開しています.Rubyのバージョンは1.8.7を使用しているため,最新の1.9系列では動作しない場合があります.

■dl_list.rb  → ダウンロード
  連番のファイル名をテキストとして出力するスクリプトです.ダウンロード用のURL一覧を作る事を想定していますが,多分,それ以外にも使えます.以下のように書いたバッチファイルを作成し,それを実行して使用します.
    C:ruby\bin\ruby.exe "dl_list.rb" [頭のURL] [開始番号] [終了番号] [拡張子] [出力ファイル名]

  例えばこんな感じです.
    C:ruby\bin\ruby.exe "dl_list.rb" "http://www.xxx.jp/file" "0" "10" "zip" "out.txt"
  実行すると,out.txtと言うファイルが作成され,
http://www.xxx.jp/file0.zip
http://www.xxx.jp/file1.zip
  (中略)
http://www.xxx.jp/file10.zip

  と言う10行が書かれます.
  開始番号の後ろに"_"と数字を付加し,
    C:ruby\bin\ruby.exe "dl_list.rb" "http://www.xxx.jp/file" "0_4" "10" "zip" "out.txt"
  と言う風に書くと,以下のように連番の部分がゼロで埋められます.
http://www.xxx.jp/file0000.zip
http://www.xxx.jp/file0001.zip
  (中略)
http://www.xxx.jp/file0010.zip

  拡張子の部分は"_"で区切る事で複数指定出来ます.
    C:ruby\bin\ruby.exe "dl_list.rb" "http://www.xxx.jp/file" "0_4" "10" "jpg_gif_png" "out.txt"
  出力結果.
http://www.xxx.jp/file0000.jpg
http://www.xxx.jp/file0000.gif
http://www.xxx.jp/file0000.png
http://www.xxx.jp/file0001.jpg
http://www.xxx.jp/file0001.gif
http://www.xxx.jp/file0001.png
  (中略)
http://www.xxx.jp/file0010.jpg
http://www.xxx.jp/file0010.gif
http://www.xxx.jp/file0010.png


■dir_comparator.rb  → ダウンロード
  指定した2つのディレクトリのファイルを比較し,差分を出力するスクリプトです.Cドライブから定期的に外付けHDDにバックアップを取っていたけど,何をコピーして何をコピーしてないか判らなくなった時などの使用を想定しています.GUIでもっと便利なツールがあると思われますが,CUI且つカスタマイズ出来ると便利そうなので作成してみました.以下のようなコマンドで使用します.

    C:ruby\bin\ruby.exe -Ks "dir_comparator.rb" [ディレクトリ1] [ディレクトリ2]
     ※2byte文字を使用するため,ruby自体のオプションとして"-Ks"を使います.

  以下のような形式で"result.txt"と言うテキストが出力されます.

# ファイルサイズ,又は更新日時が違います.
dir1\ファイルA size= 1024 time= 2013-01-01 00:00:00 +0900
dir2\ファイルA size= 2048 time= 2013-01-02 00:00:00 +0900

# dir1のみにあるファイルです.
ファイルB size= 1024 time= 2013-01-01 00:00:00 +0900
ファイルC size= 1024 time= 2013-01-01 00:00:00 +0900

# dir2のみにあるファイルです.
ファイルD size= 1024 time= 2013-01-01 00:00:00 +0900


    C:ruby\bin\ruby.exe -Ks "dir_comparator.rb" [ディレクトリ1] [ディレクトリ2] -d
  のように"-d"を後ろに付けると,ディレクトリその物の比較は行わなくなります.

■以下,何か作成したら公開予定...



inserted by FC2 system