7.1.4 For...End For
- 機能
-
指定したフォルダ内のすべてのファイルに対して,一連のステートメントを繰り返すフロー制御ステートメントです。
- 形式
For VarName = Filemask Do 〔Statements〕 〔Exit For〕 〔Statements〕 End〔For〕
- 指定項目
-
- VarName
-
ファイル名を格納する変数名を指定します。変数の名前付け規則に従って名前を付けます。配列変数や配列変数の一要素は指定できません。
- Filemask
-
検索対象のファイル名をフルパスで指定します。ファイル名にはワイルドカードを含めることもできます。フルパス名は,ダブルクォーテーションで囲んでください。
- Statements
-
ループ内で実行される一連のステートメントを指定します。ForとEnd Forの間にこれらのステートメントを記述します。ここに記述したステートメントは,For...End Forで指定したパスに該当するファイルが見付からなくなるまで繰り返されます。
Statementsには複数の文を記述できます。複数の文を記述する場合は,文ごとに改行します。
- 説明
-
指定したフォルダ内のすべてのファイルに対して,一連のステートメントを繰り返します。指定したパスに該当するファイルが見付からなくなった時, End Forステートメントの次のステートメントに制御が移ります。
Exit Forステートメントは,制御構造For...End ForとFor...Nextループ内だけで使用できます。Exit Forステートメントを使用すると,直ちにFor...End Forループを終了させることができます。Exit Forステートメントは,For...End Forループ内の任意の位置で何回でも指定できます。
For...End Forループはネスト(入れ子)構造にすることができます。つまり,For...End Forループの内部に別のFor...End Forループを入れることができます。ループをネスト(入れ子)させる場合は,それぞれのVarNameに別の変数名を指定してください。
Filemaskに "*.*"を指定した場合,VarNameには ".",".." 以外のファイル名が格納されます。
- 補足
-
-
For…End Forループのファイルの検索は,システムが互換性のために保存しているMS-DOSファイル形式に変換した短いファイル名も対象になります。
-
For…End Forループのファイル検索順序は保証していません。
-
- 例
' 実行フォルダ下のスクリプトファイルを別フォルダにバックアップする。 Dim path1 ,bkupDir bkupDir = _BIN_+"BKUP\" MakeDir ( bkupDir ) ' スクリプトファイルを検索 For path1 = _BIN_+"*.SPT" Do ' フォルダは無視 If IsExistDir ( _BIN_+path1 ) = False Then ' 別フォルダにバックアップ Copy ( _BIN_+path1 ,bkupDir+path1 ) End If End For
- 対象バージョン
-
JP1/Script 01-00以降