画像掲示板ダウンロードスクリプトは cygwin 上の bash シェルで動作するように作られています。 cygwin のインストールが終わっていない場合はインストールしてください。 cygwin は UNIX に似せた環境を windows 上で実現するソフトです。 ここでは、スクリプトを使うのに必要なことだけ触れます。
cygwin の画面はコマンドプロンプトと似ています。$ の後ろがコマンドを入力する場所です。深緑色の部分は「ユーザー名@コンピュータの名前」 です。暗い黄色の部分は「作業ディレクトリ」です。
cygwin のキー操作は、Windows Xp のコマンドプロンプトの操作と殆ど変りません。違う点は、Windows / MS-DOS で 入力終了を意味する [Ctrl] + [Z] が cygwin では [Ctrl] + [D] に変わり、[Ctrl] + [Z] は別の機能に なっています。
キー 説明 [←] 1 文字左にカーソルを移動します。漢字上を移動する場合は、漢字 1 文字当たり 2 回押します。 [→] 1 文字右にカーソルを移動します。漢字上を移動する場合は、漢字 1 文字当たり 2 回押します。 [↑] 今まで入力したコマンドを探します。古い入力は破棄されています。 [↓] 今まで入力したコマンドを探します。古い入力は破棄されています。 [Back Space] カーソルの左側文字を 1 文字詰めます。漢字を詰める場合は、漢字 1 文字当たり 2 回押します。 [Tab] 途中まで入力したファイル名、ディレクトリ名を補います。文字の大小が違っていたり、 補う候補が多すぎたり、まったく候補がないと補えないので、数文字ファイル名を追加入力するか、 訂正してしてください。
注意: 漢字のファイル名や ディレクトリ名を補った場合は正しく表示されません。 [Enter] コマンドを実行します。 [Ctrl] + [C] 実行しているコマンドを中止します。しばらく応答が無い場合があるので待ってください。 [Ctrl] + [D] 入力を終了します。主にコマンド実行中に入力状態になり、[Enter] では入力が終了しない場合に 使います。 [Ctrl] + [Q] 表示を再開します。 [Ctrl] + [S] 表示を一時停止します。 [Ctrl] + [Z] 実行しているコマンドをバックグラウンドで動作させ、追加でコマンド入力出来るようにします。
起動方法と、終了方法は次のとおりです。以降、起動方法と終了方法の詳細は省略して説明します。
(1) 起動方法:「スタート」→「(全ての)プログラム」→「Cygnus Solutions」→「Cygwin x.x Bash Shell」で cygwin を起動します。 次のようなウインドウが現れます。この画面の '$' をプロンプトと言います。cygwin に対するコマンド入力をする場所です。
(2) 終了方法: 次の太字部分を入力して [Enter] 押します。 $ exit
cygwin は漢字を含んだファイル名やディレクトリ名を インストールをしたままの状態では扱えません。次のようにして漢字を扱えるように設定してください。
(1) cygwin を起動します。 (2) 次の太字部分を入力して [Enter] 押します。 $ cd ~;notepad .inputrc(3) notepad (メモ帳) が起動するので次の内容を入力して下さい。入力が終わったら保存、終了してください。 既に同様の行が有る場合は、On/Off が一致するか 確認してください。 set input-meta On set output-meta On set convert-meta Off
注意: エディタで編集しようとするテキストから改行が失われている場合は、notepad ではなく UNIX 形式の改行(LF) が扱えるエディタで編集してください。 あるいは、(2), (3) の手順を次のように変更します。コピーペースト(ウインドウメニュー)を使うとやりやすいです。 $ cd ~; cat > .inputrc 元々あった .inputrc に追加するには > を >> にしてください。 set input-meta On set output-meta On set convert-meta Off [Ctrl] + [d] をタイプする。(4) 別の cygwin を起動し、次の太字部分を入力して [Enter] を押します。漢字の入力が出来るか確認してください。 漢字入力の方法は Windows アプリケーションに対する方法と同じです。入力した未確定文字が現れない場合は、 1,2 秒待ってみてください。 $ echo 漢字 漢字 ← この表示が現れるはず。(5) 起動した cygwin を終了します。
設定はこれで終了です。
注意: この設定は漢字を入力できるようにしただけです。 cygwin は漢字に完全に 対応していません。コマンドに漢字か含まれているとコマンドの編集画面が乱れます。できれば スクリプトを実行するために、途中に漢字を含まない名前を持ったディレクトリを用意して下さい。
cygwin でファイルやディレクトリ(フォルダ)をアクセスするには Windows で使っているパス名を読み換える必要があります。 次の様に読み換えてください。
例 環境 パスの表記 1 Windows C:\Documents and Settings\furuta\デスクトップ\test.txt cygwin /cygdrive/c/Documents\ and\ Settings/furuta/デスクトップ/test.txt 2 Windows \\Amdtx\GIMG\xpecygw\test.txt cygwin //Amdtx/GIMG/xpecygw/test.txt
読み換え規則は次のとおりです。
項目 説明 ドライブ名 C: を /cygdrive/c に読み換えます。
/cygdrive/c に読み換えてもアクセスできない場合は、 $ mount -p コマンドで設定を確認してください。ディレクトリの区切り \ を / に読み換えます。 空白 " " を "\ " に読み換えます。 ホームディレクトリ 読み換えでは有りませんが ~ は Windows の "マイドキュメント" ("ユーザー名のドキュメント") フォルダに相当します。 $ cd ~; pwd でどのディレクトリか確認してください。
漢字名のファイルやディレクトリをアクセスするには、cd 'ゲスト' の様に '' で囲んでコマンドに 渡してください。'' で囲まないと、エラーになることがあります。
次はスクリプトを使うために必要な最低限のコマンドです。
コマンド 説明 cd ディレクトリ 作業するディレクトリを変更します。Windows / DOS の CD コマンドに似ています。 cd だけ入力するとホームディレクトリに作業ディレクトリが移動します。例、 $ cd testexit cygwin を終了します。Windows / DOS の EXIT と同様です。例、 $ exitenv | less 全ての環境変数を表示します。カーソルキーで上下にスクロールします。 [q]でコマンドを終了します。例、 $ env | less [q] を押して終了します。echo $環境変数 環境変数に設定された値を見ます。例、 $ echo $REFERFROM $ echo ${REFERFROM} 中括弧を付けても同様の結果を得られます。export 環境変数="値" 環境変数に値(文字列も可)を設定します。 例、 $ export REFERFROM="http://www.yahoo.co.jp"ls -laディレクトリ または *等を含むファイル ディレクトリに格納されたファイルを表示します。*.htm の様に指定すると * の部分は任意の パターンに一致するとみなしリストします。漢字を正しく表示するためには -- show を付けて下さい。例、 $ ls -la *.htm $ ls -la --show 作業ディレクトリ内のファイルとディレクトリを表示mkdir ディレクトリ ディレクトリを作成します。例、 $ mkdir test $ mkdir 'お楽しみ画像' 漢字を含む場合は '' で囲んでください。コマンド > ファイル名 2>&1 コマンドの表示を全てファイルに格納します。例、 $ imgbdown http://wwww.yyy.xxx/cgi-bin/A/imageboard.cgi > out.txt 2>&1
cygwin で使うコマンドの殆どは Linux で使っているコマンドと同じ仕様です。Linux で使えるコマンドのマニュアルページを 使って機能を調べることができます。スクリプトを改造するのに参考にしてください。
参考の対象 説明のリンク linux のマニュアルページ JM Project bash GNU Bourne-Again SHell basename ファイル名からディレクトリとサフィックスを取り除く cat ファイルを連結して、標準出力へ表示する date システムの日付と時刻を表示あるいは設定する l dirname パス名からファイル名を切り出す echo テキストの行を表示する gawk パターン検索・処理言語 grep パターンにマッチする行を表示する mv ファイルを移動する(ファイル名を変更する) pwd 現在の作業ディレクトリの絶対パス名を出力します(bash の組み込みコマンド) rm ファイルまたはディレクトリを削除する sed ストリームエディタ tr 文字を変換、消去する wc ファイル中のバイト数、単語数、行数を出力
自動実行するためには、スクリプトを書きます。UNIX の改行形式で保存できるエディタを用意してください。 UNIX の改行形式は行末を (LF) で表現する形式です。エディタによって操作は異なりますが、次のような 選択肢があるかどうか確認してください。特に断りがない限り、この章のテキストファイルは UNIX の改行形式です。
改行形式の呼称 改行表現 DOS または Windows 形式 CR+LF UNIX 形式 LF MAC 形式 CR
ショートカットから起動するには、次のようにショートカットの内容を設定します。
ショートカットの項目 文字列 リンク先 c:\cygwin\bin\bash.exe -c "cygwin のコマンドライン"
c:\cygwin の部分は cygwin をインストールしたディレクトリに合わせて読み換えて下さい。"cygwin のコマンドライン" の部分は画像スクリプトをダウンロードするのに必要なコマンド入力です。いくつかコマンドを複合する場合は、';' を 区切りに挿入してください。例えば、export REFERFROM= 'http://www.sample.download.xx/index.html';imgbdown 'http://www.sample.download.xx/cgi-bin/test/imageboard.cgi' の様になります。作業フォルダ ダウンロードしたファイルを保存するディレクトリを指定します。 その他 権限、セキュリティ設定を適切にする以外は自由に設定できます。
Windows / MS-DOS 形式のバッチファイルを書くことでもできます。もう一つの方法として cygwin の bash シェルを 使った方法を示します。スクリプトを起動するスクリプトを作ります。次のようなテキストファイルです。右側は注釈です。
内容の殆どは環境変数設定、ディレクトリ作成、作業ディレクトリ移動、スクリプト起動です。このスクリプトを 起動するには、cygwin を起動して、スクリプトのフルパス(あるいは作業ディレクトリからの相対パス)をコマンド として入力します。ただし、作業ディレクトリにあるスクリプトを起動するには $ ./scriptname の様にしてください。
#!/bin/bash # Sample Script to download. cd ~ mkdir ni-chan > /dev/null 2>&1 cd ni-chan export RETRYS=4 (mkdir img2 > /dev/null 2>&1 cd img2 export REFERFROM="http://www.ni-chan.net/index.htm" gadown "http://temp.ni-chan.net/img2/imgboard.cgi" 20 cd .. ) & (mkdir action > /dev/null 2>&1 cd action export REFERFROM="http://www.ni-chan.net/index2.htm" gadown "http://cgi.ni-chan.net/action/imgboard.cgi" 20 cd .. ) & bash スクリプトだと言うことを識別します。 1 行目のお約束 # 以降はコメントになります。 作業ディレクトリをホームディレクトリにする。 ni-chan ディレクトリを作る。エラーは出力しない。 作業ディレクトリを ni-chan ディレクトリにする。 再試行回数(RETRYS) を 4 にします。次の 2 つの ( ) 内にとって有効です。 () で囲った全体は & を最後につける事で並列に動作する。 作業ディレクトリは ~/ni-chan/img2 になる。 参照元(REFERFROM) を設定します。この ( ) 内だけ有効です。 ダウンロードスクリプトを起動する。 作業ディレクトリを ~/ni-chan に移す。& を外した場合に備える。 () で囲った全体は & を最後につける事で並列に動作する。 作業ディレクトリは ~/ni-chan/action になる。 参照元(REFERFROM) を設定します。この ( ) 内だけ有効です。 ダウンロードスクリプトを起動する。 作業ディレクトリを ~/ni-chan に移す。& を外した場合に備える。