情報
作者名:五十六
引用元:なし
概要
コマンドラインにファイルが投げられた時(実行ファイルにファイルやフォルダをD&Dされた時とか)用のテンプレートです。
色んなモードがあります。
例えば、音楽プレーヤーだったら、モードDの対応拡張子「mp3,mp4,wma」とか。
最終的に残る配列は「コマンドライン」です。
本体
#-----------------------------------------------------------------------
#コマンドラインテンプレート
#-----------------------------------------------------------------------
コマンドラインモード=「A」。
コマンドライン階層オプション=「5」。
//A ファイル、フォルダそのまま(存在するもの)
//B ファイルのみ
//C フォルダのみ
//D ファイルのみ(1階層下までのファイルも展開)
//E ファイルのみ(全部の下階層のファイルも展開)
//F ファイルのみ({階層オプション}N階層下までのファイルも展開)
//G フォルダのみ(全部の下階層のフォルダも取得)
//H フォルダのみ(1階層下のフォルダも取得)
//I フォルダのみ({階層オプション}N階層下のフォルダも取得)
#-----------------------------------------------------------------------
//拡張子選別
//使えるモードはA、B、D、E、Fのみ (Aはファイルにだけ適用)
//大文字小文字は区別せず(png=PNG=Pngとして扱う)
コマンドライン対応拡張子=「全部」。//「」でも同じ
#コマンドライン対応拡張子=「jpeg,jpg,gif,png」。
#コマンドライン対応拡張子=「mp3,mp4,wav,wma」。
#コマンドライン対応拡張子=「avi,mp4」。
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
コマンドラインの0を配列削除。
A=コマンドライン。コマンドライン=空。
Aで反復
もし、対象のフォルダ存在=はいならば、(対象の終端パス追加)をコマンドラインに配列追加。
違えば、対象をコマンドラインに配列追加。
A=コマンドライン。コマンドライン=空。
コマンドライン拡張子スイッチ=オフ。
コマンドラインモードで条件分岐
「A」ならば
コマンドライン対応拡張子=コマンドライン対応拡張子を「,」で区切る。
Aで反復、もし、対象が存在=はいならば
もし、対象のフォルダ存在=はいならば
対象をコマンドラインに配列追加。
違えば
もし、(コマンドライン対応拡張子≠空)かつ(コマンドライン対応拡張子≠「全部」)ならば
B=0。C=対象。
コマンドライン対応拡張子で反復
もし、対象=空ならば、続ける。
もし、((Cから拡張子抽出)を小文字変換)=(「.」&(対象を小文字変換))ならば、B=1。抜ける。
もし、B=1ならば、Cをコマンドラインに配列追加。
違えば、対象をコマンドラインに配列追加。
「B」ならば
コマンドライン拡張子スイッチ=オン。
Aで反復、もし、(対象が存在=はい)かつ(対象のフォルダ存在=いいえ)ならば、対象をコマンドラインに配列追加。
「C」ならば
Aで反復、もし、(対象のフォルダ存在=はい)ならば、(対象の終端パス追加)をコマンドラインに配列追加。
「D」ならば
コマンドライン拡張子スイッチ=オン。
Aで反復
もし、(対象の存在=はい)ならば
もし、(対象のフォルダ存在=はい)ならば、B=対象の絶対パスファイル列挙。もし、B≠空ならば、Bで反復、対象をコマンドラインに配列追加。
違えば、対象をコマンドラインに配列追加。
「E」ならば
コマンドライン拡張子スイッチ=オン。
もし、(対象の存在=はい)ならば
もし、(対象のフォルダ存在=はい)ならば、B=対象の全ファイル列挙。もし、B≠空ならば、Bで反復、対象をコマンドラインに配列追加。
違えば、対象をコマンドラインに配列追加。
「F」ならば
コマンドライン拡張子スイッチ=オン。
E=A。
1の間
もし、Aの配列要素数=0ならば、抜ける。
B=A[0]。Aの0を配列削除。
もし、(Bの存在=はい)ならば
もし、(Bのフォルダ存在=はい)ならば
D=B。(コマンドライン階層オプション)回、D=Dの一階層上。
もし、(D≠空)または(Eの1からDを配列検索<0)ならば
C=Bの絶対パスファイル列挙。もし、C≠空ならば、Cで反復、対象をAに配列追加。//対象をコマンドラインに配列追加。
F=Bの絶対パスフォルダ列挙。もし、F≠空ならば、Fで反復、対象をAに配列追加。
違えば、Bをコマンドラインに配列追加。
「G」ならば
Aで反復
もし、(対象のフォルダ存在=はい)ならば
B=対象の全フォルダ列挙。Bで反復、対象をコマンドラインに配列追加。#(対象の終端パス追加)をコマンドラインに配列追加。
「H」ならば
Aで反復
もし、(対象のフォルダ存在=はい)ならば
対象をコマンドラインに配列追加。
B=対象の絶対パスフォルダ列挙。もし、B≠空ならば、Bで反復、対象をコマンドラインに配列追加。
「I」ならば
E=A。
1の間
もし、Aの配列要素数=0ならば、抜ける。
B=A[0]。Aの0を配列削除。
もし、(Bのフォルダ存在=はい)ならば
D=B。(コマンドライン階層オプション)回、D=Dの一階層上。
もし、(D≠空)または(Eの1からDを配列検索<0)ならば
F=Bの絶対パスフォルダ列挙。もし、F≠空ならば、Fで反復、対象をAに配列追加。
違えば、Bをコマンドラインに配列追加。
違えば、「モードが不明です。」と言う。終わり。
●一階層上(Sの|Sを|Sから)
S=「..\」をSで相対パス展開。S=Sの終端パス追加。戻る。
●絶対パスファイル列挙({文字列=?}Sの|Sを|Sで)
M=Sからファイル名抽出。S=Sからパス抽出。A=Sの終端パス追加。B=A&Mのファイル列挙。C=空。
Bで反復、(A&対象)をCに配列追加。
Cで戻る。
●絶対パスフォルダ列挙({文字列=?}Sの|Sを|Sで)
A=Sの終端パス追加。B=Sのフォルダ列挙。C=空。
Bで反復、(A&対象&「\」)をCに配列追加。
Cで戻る。
#-----------------------------------------------------------------------
もし、コマンドライン拡張子スイッチ=オンならば
もし、(コマンドライン対応拡張子≠空)かつ(コマンドライン対応拡張子≠「全部」)ならば
A=コマンドライン。コマンドライン=空。コマンドライン対応拡張子=コマンドライン対応拡張子を「,」で区切る。
Aで反復
B=0。C=対象。
コマンドライン対応拡張子で反復
もし、対象=空ならば、続ける。
もし、((Cから拡張子抽出)を小文字変換)=(「.」&(対象を小文字変換))ならば、B=1。抜ける。
もし、B=1ならば、Cをコマンドラインに配列追加。
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
//サンプルプログラム
コマンドラインを言う。
最終更新:2009年05月31日 17:27