File
3.4.2 File
説明
File - テキストファイルからの読み取り、またはテキストファイルへの書き込み。このコマンドは、プレーンテキストファイルを開いたり、作成したり、テキストを読み書きしたり、文字列や正規表現を検索したり、CSV(Comma Separated Values)形式や正規表現を使用して個々のテキスト行から値を解析したりすることができます。
ファイルはデフォルトでUTF-8エンコーディングで開かれ、保存されます。ファイルの内容は、Javaキャラクタ・ストリームを使って1行ずつ読み込まれ、メモリ内の文字列バッファに格納されます。その後のI/O操作はすべてバッファに対して実行され、ファイルが明示的に閉じられるか、スクリプトが標準的な方法で終了したとき(予期しない、あるいは異常なプログラム終了ではないという意味)だけ、内容がファイル(または出力ファイル)に書き込まれます。使用される技術に関して、このコマンドは小さいファイル(数十KBまで)の処理に適しており、大きいデータファイルではパフォーマンスが著しく低下します。
v6.1以降、Fileコマンドは以下を読み取ることができます。MS Wordファイル(*.doc、*.docx) およびPDFファイル(*.pdf)に変換されます。内容はプレーンテキストに変換され、入力ファイルがテキストであるかのように処理されます。ファイルを修正して元の形式で保存することはできません。コンテンツはプレーンテキストファイルとしてのみ保存できます。
v6.2.3以降、このコマンドはBOM文字の取り扱いを改善しました。BOMを持つ既存のファイルがUTF-8エンコーディングで開かれ、変更され、保存された場合、コマンドは適切なBOM文字をファイルに挿入します。新しく作成されたファイルに BOM 文字を挿入することはありません。
コマンドはこの一連の動作を定義します:
Open - 既存のテキストファイルを読み書きモードで開きます。
Create - メモリ上に新しいファイルを作成します。
Append - ファイルの最後にテキストを追加します。
Insert - ファイルの任意の位置にテキストを挿入します。
Find - を検索します。
Read - ファイルのある位置からテキストを読み取ります。
Parse - CSVフォーマットまたは正規表現を使って、行から値を解析します。
Delete - テキストや行を削除します。
Close - ファイルを閉じて保存します。
典型的なワークフローは、以下の論理的ステップで構成されます:
既存のファイルを開く(または新しいものを作る(ファイル作成)。このステップでは、ファイル名、パス、構造を変数に入力します。スクリプトが一度に複数のファイルを扱う場合は、各ファイルに ID タグを付け、以降のすべての File コマンドでそのファイルを参照する必要があります。
ファイル内の既知の位置から値を読み込むには、 「ファイル読み取り」を使用します。位置が不明な場合は、「ファイル検索」を使用してテキスト値の位置を特定できます。ファイルに特定の形式のデータが含まれている場合は、「ファイル解析」を使用して解析します。このコマンドは、CSV形式の値の読み取り、またはカスタム正規表現に基づく値の解析をサポートしています。
「ファイル追加」または「ファイル挿入」を使用してファイルに書き込みます。 追加アクションはテキストをファイルの末尾に追加します。挿入アクションは、テキストをファイル内の特定の位置に挿入します。
ドキュメントを閉じて変更を保存または破棄するには 、 「ファイルを閉じる」コマンドを呼び出します。この手順はオプションであり、スクリプトが終了するとすべてのドキュメントが自動的に閉じられ、最終的に保存されます。
ファイル内のナビゲーションと解析されたテキストの取得は、変数によって有効になります:
グループ名 | 変数名 | 説明 |
|---|---|---|
File open, (so called "File Group") | _FILE_FILE | ファイルパス(フル/絶対)。 |
_FILE_FILENAME | ファイル名 | |
_FILE_OUTFILE | 明示的に指定された場合は、出力ファイルパス(完全/絶対)。 | |
_FILE_OUTFILENAME | 明示的に指定された場合は、出力ファイル名。 | |
File open ("Counter Group") | _FILE_LENGTH | 改行も含めたファイル長。UTF-8の文字の中には複数バイトでエンコードされているものがあるので、ファイルサイズと一致する必要はないことに注意。 |
_FILE_LINE_COUNT | ファイル内のテキスト行数。 | |
File find ("Line Group") | _FILE_LINE_NUMBER | 現在処理されている行の番号。行の番号は1(1)から始まる。 |
_FILE_LINE_LENGTH | 改行文字を除いた現在の行の長さ。 | |
_FILE_LINE_TEXT | 現在の行のテキスト(改行文字を除いた全長)。 | |
_FILE_LINE_COLUMN | 行の列(文字)番号。列番号は行の先頭を表す1(one)から始まる。この変数は "find "アクションによって入力され、検索されたテキストの行の位置を示します。 | |
File read | _FILE_READ | File read "コマンドで読み込んだテキスト。 |
File delete | _FILE_DELETED | ファイル削除」コマンドで削除されたテキスト。 |
File parse ("Parse group") | _FILE_PARSE_COUNT | File parse」によって解析された値の数。 |
_FILE_PARSE_VALUE<N> | <N>が1から_FILE_PARSE_COUNTの間である場合、テキスト行から解析されたN番目の値。 |
通常、コマンドは成功した場合は 0 を返し、成功した場合は次のいずれかの終了コードを返します。:
終了コード | 疑似コード | 説明 |
|---|---|---|
0 | 成功 | 成功裏に終了。 |
1 | FAILED_TO_OPEN | 入力ファイルのオープンに失敗しました。File open "だけで返されます。 |
2 | FAILED_TO_SAVE | ファイルへの保存に失敗しました。ファイルクローズ」だけで返されます。 |
3 | FAILED_TO_FIND | 値の検索に失敗しました。テキスト検索に失敗したことを示すために、"File find "によってのみ返されます。 |
4 | 無効位置 | lineまたはcolumnパラメータが、ファイル内の既存の位置を指していない。line "と "column "をサポートする全てのコマンドによって返されます。 |
各アクションのシンタックスとパラメータについては、以下で詳しく説明します。
SYNOPSIS
File open
File open [file=<file]> [outfile=<output_file>] [id=<識別子>]
File create [file=<file>] [id=<識別子>]
赤色は必須パラメータです
オプション
file=<ファイル>
-オープンまたは作成するファイル。相対パスは、呼び出しスクリプトの場所(呼び出しスクリプトを含むフォルダを意味する)に対して解決されます。開 く フ ァ イ ルが MS Word (*.doc ま たは *.docx) ま たは PDF (*.pdf) の場合、 内容はプ レー ン テ キ ス ト に変換 さ れます。PDF フ ァ イ ルは、 抽出で き ないテ キ ス ト の画像 (ス ク リ ーン ソ ッ ト 、 ス キ ャ ン さ れた文書) を包んでい る こ と が多いので注意 し て く だ さ い。
outfile=<出力ファイル>
-オプションの出力ファイル。指定すると、コマンドはファイルのコピーを作成し、すべての変更をソース ファイルではなくそのファイルに適用します。相対パスは、呼び出しスクリプトの場所(呼び出しスクリプトを含むフォルダを意味する)に対して解決される。パラメータを省略すると、ファイルは読み取り/書き込みモードで開かれる。ファイルがすでに存在する場合は、上書きされます。
id=<識別子>
-ファイルの識別子(名前)。スクリプトが一度に1つのファイルだけをオープン/作成する場合、このパラメータは省略できる。複数のファイルを開く場合は、この識別子は必須で、後続の File コマンドでファイルを識別します。
戻り値
openコマンドは0(成功)または1(失敗)を返します。createコマンドはメモリ上にファイルを作成するため、常に0を返します。コマンドが0で終了した場合、 FileそしてCounter変数グループの変数に値が設定されます。
使用例
File open file="data.csv"
スクリプトと同じディレクトリにある CSV ファイルを読み取り/書き込みモードで開きます。
File open file="C:\Data\data.csv" outfile="newdata.csv"
指定されたディレクトリにあるCSVファイルを読み取り専用モードで開きます。ファイルを閉じると、その内容とすべての変更がスクリプトディレクトリ内の指定された出力ファイルに保存されます。出力ファイルが存在する場合は上書きされます。
File create file="C:\Data\log.txt"
メモリ内に新しいファイル コンテンツ バッファを作成し、それを指定されたファイルに関連付けて出力します。
File append
File append [text=<text>] [id=<identifier>]
赤色は必須パラメータです
オプション
text=<テキスト>
-ファイルの最後に追加するテキスト。任意の UTF-8 文字を含むことができます。改行を示すには"˶n "を使用します。通常のテキストで" \n "シーケンスを使用する必要がある場合は、バックスラッシュ文字("n")を使用してください.
id=<識別子>
-テキストを追加するファイルの識別子。File openまたはcreateコマンドで指定したIDに等しくなければなりません。スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、パラメータを指定する必要はありません。
戻り値
コマンドは常に0(成功)を返します。ファイル・サイズを変更し、最終的に行数を変更すると、コマンドはCounterグループの変数を更新します。。
使用例
File append text="This is one line\nwhile this is another one"
ファイルの末尾に、「これは 1 行目です」と「一方、これはもう 1 行目です」という 2 行のテキストを追加します。
File append text="screws\\nails"
「screws\nails」というテキストを1行追加します。この場合、バックスラッシュ文字は改行文字として解釈されるため、2つ重ねて記述する必要があります。
File insert
File insert [text=<text>] [line=<line_number>] [column=<column_number>] [id=<identifier>]
赤色は必須パラメータです
オプション
text=<テキスト>
-ファイルに挿入するテキスト。UTF-8文字であれば何でも構いません。改行を示すには、" \n" を使用します。通常のテキストで"˶"シーケンスを使用する必要がある場合は、バックスラッシュ文字("˶")を2重にしてください。
line=<行番号>
-テキストを挿入する行番号。行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
column=<列番号>
-テキストを挿入する列(文字番号)。番号は1から始まります。指定しない場合、コマンドはデフォルトで行頭に挿入します(column=1)。 カラムが行の文字数より大きい場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
id=<識別子>
-テキストを挿入するファイルの識別子。File openまたはcreateコマンドで指定されたIDに等しくなければなりません。 スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、パラメータを指定する必要はありません。
戻り値
このコマンドは、行と列のパラメータがファイル内の既存の位置を指していない場合、0(成功)または4(無効位置)を返します。ファイルサイズと行数が変更されると、コマンドはCounterグループを更新します。また、このコマンドはLine変数グループを更新し、[行, 列]座標が指す行に関する情報を提供します。
使用例
File read line=2
File insert text=" and potatoes" line=2 column={_FILE_LINE_LENGTH}+1
行目の行末に "とジャガイモ "を追加します。行の長さ(_FILE_LINE_LENGTH変数)を得るために "File read "コマンドが呼ばれます。
File find text="bananas"
File insert text=" and potatoes" line={_FILE_LINE_NUMBER} column={_FILE_LINE_COLUMN}+7
"bananas "を検索し、テキストを挿入して "bananas and potatoes "を作成します。この例では、findコマンドが成功するかどうかをテストしていないことに注意してください。
File find
File find [text=<text>] [line=<line_number>] [column=<column_number>] [direction=<forward|backward>>] [scope=<line|file>] [id=<identifier>]
赤色は必須パラメータです
オプション
テキスト=<テキスト>
-検索するテキスト。UTF-8文字であれば何でもかまいません。改行を示すには"˶n "を使用します。を通常のテキストとして使用する場合は、バックスラッシュを2重にしてください。
line=<行番号>
-検索を開始する行番号。行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
column=<列番号>
-検索を開始する列(文字番号)。指定しない場合、コマンドはデフォルトで行頭から検索する(column=1)。 カラムが行の文字数より大きい場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
direction=<前方|後方>
-検索モード。デフォルトはforwardで、[line, column]で指定した位置からファイルまたは行の末尾に向かって検索します。backwardは指定された位置から逆方向に検索します。
scope=<ファイル|行>
-検索範囲。デフォルトはfileで、ファイル全体またはその一部を検索します。行スコープでは、指定した行またはその一部だけを検索することができ、検索されるテキストには改行文字は含まれない。
id=<識別子>
-検索するファイルの識別子。File openまたはcreateコマンドで指定されたIDに等しくなければなりません。スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、このパラメータを指定する必要はありません。
戻り値
このコマンドは、テキストが見つかった場合は0(成功)を、見つからなかった場合は3(見つかりません)を、行と列のパラメータがファイル内の有効な位置を指していない場合は4(無効な位置)を返します。検索が成功した場合、 Line変数グループを更新し、対象の\[行, 列\]座標が提供されます。
使用例
File find text="bananas"
if ({_EXIT_CODE} == 3) {
Exit 3
}
File insert text=" and potatoes" line={_FILE_LINE_NUMBER} column={_FILE_LINE_COLUMN}+7
ファイル内で「bananas」を検索し、テキストを挿入して「bananas and potatoes」を作成します。単語が見つからない場合、スクリプトは終了コード3で終了します。
File read
File read [line=<line_number>] [column=<column_number>] [length=<length_in_chars>] [id=<identifier>]
赤色は必須パラメータです
オプション
line=<行番号>
-読み込む行の番号。行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
column=<列番号>
-読み込む列(文字番号)。番号は1から始まる。指定しない場合、コマンドは行頭から読み込みます(column=1)。 カラムが行の文字数より大きい場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
length=<長さ>
-何文字読み込むかを指定するオプションの長さ。その範囲はテキスト行の境界を超えてはなりません。lengthパラメータが指定されない場合、コマンドは指定された行の終わりまで読み込みます(改行文字を除く)。
id=<識別子>
-読み込むファイルの識別子。File openまたはcreateコマンドで指定されたIDに等しくなければなりません。スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、パラメータを指定する必要はありません。
戻り値
このコマンドは、テキストが正常に検出され読み取られた場合は0(成功)を返し、行と列のパラメータがファイル内の有効な位置を指していない場合は4(無効な位置)を返します。成功した場合、抽出されたテキストは_FILE_READ変数に格納されます。また、このコマンドはLine 変数グループを更新し、[行, 列]座標で指定された行に関する情報を提供します。
使用例
File find text="bananas" line=2 scope=line
File read line=2 length={_FILE_LINE_COLUMN}
Type "{_FILE_READ}"
2行目の「バナナ」という単語を見つけ、その単語の前の文章を読んでタイプします。
File parse
File parse [line=<line_number>] [delimeter=<delimeter_char>] [separator=<separator_char>] [trim=<true|false>] [id=<identifier>]
File parse [line=<line_number>] [pattern=<regular_expression>] [trim=<true|false>] [id=<identifier>]
赤色は必須パラメータです
このコマンドはデフォルトで、カンマ区切り値(CSV)仕様に従って指定された行から値を読み込みます。このコマンドは、以下のComma-Separated Valuesの記事で指定されている規則と互換性があります。ウィキペディアで、複数行の値をサポートしています。構文解析の仕組みは、オプションのカスタムテキスト区切り文字、値区切り文字、トリミングモードでカスタマイズすることもできます。
pattern "パラメーターが指定されると、コマンドは指定されたJava互換の正規表現に基づいて行を解析します。このアプローチはjava.lang.String.split()メソッドであり、CSV メカニズムとは根本的に異なります。例えば、スペースで区切られた個々の単語を解析するには正規表現" \s" を使用します。このモードはCVSの解析と混在することはできませんし、「pattern」は「delimiter」や「separator」と同時に指定することはできません。
解析された値は、一連の番号付き変数(_FILE_PARSE_VALUE1, _FILE_PARSE_VALUE2 ...)とカウンタ(_FILE_PARSE_COUNT)を通して利用できるようになり、変数名を入れ子にした "for "ループを通してスクリプト内で取り出すことができます(例のセクションを参照)。コマンドはまた、行変数を変更し、行番号を最後に処理された行に設定します。これは、複数行の値を含む行を正しく反復処理するための重要な機能です。
オプション
line=<行番号>
-パースする行の番号。行番号が範囲外の場合、コマンドは終了コード4(INVALID_POSITION)で失敗します。
delimeter=<delimeter_char>
-テキストの区切り文字。このパラメータが指定されない場合、デフォルトは CSV 互換の二重引用符 ( " ) です。
separator=<セパレータ文字列>
-値の区切り文字となる文字。パラメータを指定しなかった場合のデフォルトは CSV 互換のカンマ ( , ) です。
pattern=<正規表現>
-値を区切る値を表す正規表現。この解析モードは内部的にjava.lang.String.split()メソッドに依存しています。式はJavaパターン仕様に準拠している必要があります。
trim=<true|false>
-trueを指定すると、解析された各値の先頭と末尾の空白が削除されます。このモードはCSVと互換性がなく、またアールエフシー4180.デフォルト値はfalse(トリミングしない)。
id=<識別子>
-読み込みと解析を行うファイルの識別子。File openまたはcreateコマンドで指定されたIDと等しくなければなりません。スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、パラメータを指定する必要はありません。
戻り値
このコマンドは、テキストが正常に検出され読み取られた場合は0(成功)を返し、行パラメータと列パラメータがファイル内の有効な位置を指していない場合は4(無効位置)を返します。成功した場合、コマンドはParse 変数グループに値を設定し、処理された行に関する情報でLine 変数グループ を更新します 。
使用例
ウィキペディアに例として挙げられているデータセットを見てみましょう 。
1997 | Ford | E350 | ac, abs, moon | 3000.00 |
1999 | Chevy | Venture "Extended Edition" | 4900.00 | |
1999 | Chevy | Venture "Extended Edition, Very Large" | 5000.00 | |
1996 | Jeep | Grand Cherokee | MUST SELL! | 4799.00 |
対応するCSVファイルは以下のようになる:
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air, moon roof, loaded",4799.00
以下のスクリプトは、行を1つずつ解析し、個々のCSV値を出力します(結果を表示するには、接続されているリモートデスクトップでテキストエディタを開きます)。また、通常は行の5番目の値に位置するすべての価格の合計を計算し、プリントアウトします。最後の2行目には複数行の値が含まれているため、ファイル内の行数を単純に反復することはできないことに注意してください。
File open file="data.csv"
# 以下のEvalコマンドでコンパイラーエラーを回避するために、5番目の変数を宣言する。
Var sum=0 _FILE_PARSE_VALUE5=0
for (i=1; {i}<{_FILE_LINE_COUNT}; i={i}+1) {
File parse line={i}
Typeline "Line #{i}:"
for (j=1; {j}<{_FILE_PARSE_COUNT}+1; j={j}+1) {
Typeline " Value #{j}: {_FILE_PARSE_VALUE{j}}"
}
# 5列目の車両価格を合計に加える。
Eval sum={sum}+{_FILE_PARSE_VALUE5}
# パース・コマンドはLine varグループを更新し、最後にパースされた番号に更新する。
# 処理された行は、複数行の値を持つ行をスキップすることができる。
Var i={_FILE_LINE_NUMBER}
}
Typeline "Summary value: ${sum}"
スクリプトが実行されると、デスクトップに次のような出力がタイプされます:
Line #1:
Value #1: 1997
Value #2: Ford
Value #3: E350
Value #4: ac, abs, moon
Value #5: 3000.00
Line #2:
Value #1: 1999
Value #2: Chevy
Value #3: Venture "Extended Edition"
Value #4:
Value #5: 4900.00
Line #3:
Value #1: 1999
Value #2: Chevy
Value #3: Venture "Extended Edition, Very Large"
Value #4:
Value #5: 5000.00
Line #4:
Value #1: 1996
Value #2: Jeep
Value #3: Grand Cherokee
Value #4: MUST SELL!
air, moon roof, loaded
Value #5: 4799.00
Summary value: $17699
別の例:数字を1つ以上のスペースまたはタブで区切ったテキストファイルがあるとします:
1 14 23 9 100
117 5 7
すべての数値の合計を "count "という変数に入れるには、通常、以下のスクリプトを使用します。なお、データファイルはCSVではないので、Javaの正規表現"˶s "を使う必要があります。
File open file="C:\numbers.txt"
Eval count=0
Var _FILE_PARSE_COUNT=0 _FILE_PARSE_VALUE1=0
for (i=1; {i}<{_FILE_LINE_COUNT}+1; i={i}+1) {
File parse line={i} pattern="\s"
for (j=1; {j}<{_FILE_PARSE_COUNT}+1; j={j}+1) {
Eval count={count}+{_FILE_PARSE_VALUE{j}}
}
}
File delete
File delete [line=<line_number>] [column=<column_number>] [length=<length_in_chars>] [id=<identifier>]
赤色は必須パラメータです
オプション
line=<行番号>
-削除する行番号。行番号が範囲外の場合、コマンドは終了コード4で失敗します。
column=<カラム番号>
-テキストを削除する列 (文字番号)。番号は 1 から始まります。指定しない場合、コマンドは行頭から削除します(column=1)。カラムが行の文字数より大きい場合、コマンドは終了コード4で失敗します。
length=<length_in_chars>
-削除する文字数を指定するオプションの長さ。そのような場合、削除は改行文字で終了し、それ以降の行に適用されます。長さがファイルサイズを超える場合、指定した位置以降のすべてのコンテンツファイルのコンテンツが削除されます。lengthパラメータが指定されない場合、コマンドは改行文字を含む指定された行の最後だけを削除します。
id=<識別子>
-読み込みと解析を行うファイルの識別子。File openまたはcreateコマンドで指定されたIDと等しくなければなりません。スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、パラメータを指定する必要はありません。
戻り値
テキストが正常に検出され削除された場合、コマンドは0(成功)を返します。行パラメータと列パラメータがファイル内の有効な位置を指していない場合は4(無効位置)を返します。コマンドは削除されたテキストを_FILE_DELETED変数に保存します。削除操作によってファイルサイズが変わり、最終的には行数も変化するため、CounterグループとLineグループの変数が更新されます。
使用例
File delete line="1"
最初の行(改行文字を含む)を削除します。。
File delete line="2" length={_FILE_LENGTH}
ファイルの 2 行目から末尾までのすべてを削除し、最初の行だけを残します。
for (i=1; {i}<{_FILE_LINE_COUNT}; i={i}+1) {
File delete line={i} length=10
}
各行の最初の 10 文字を削除します。
File read line=1
File delete line="1" column={_FILE_LINE_LENGTH}+1 length=1
最初の行の末尾にある改行文字を削除し、最初の行と 2 番目の行を結合します。
File close
File close [id=<identifier>] [save=<true|false>]
赤色は必須パラメータを示します。
オプション
save=<true|false>
-trueはファイルをファイルシステムに保存し、falseは変更を破棄します。デフォルト値は "true "です。ファイルは、スクリプトによって変更された場合、および/または別の出力ファイルが指定された場合にのみ保存されます。
id=<識別子>
-閉じるファイルの識別子。このIDは、直前のFile openまたはcreateコマンドで指定されたIDと等しくなければなりません。スクリプトが1つのファイルだけをオープン/作成し、open/createコマンドでIDが指定されていない場合は、パラメータを指定する必要はありません。
戻り値
open コマンドは、I/O エラーが発生した場合、0 (SUCCESS) または 2 (FAILED_TO_SAVE) を返します。また、コンテキストからファイル固有の変数をすべてクリアします。
使用例
File open file=test.txt
...
File close
ファイルを閉じる。内容を変更した場合は、test.txt ファイルに変更内容を保存します。
File open file=test.txt outfile=test2.txt
...
File close
ファイルを閉じます。test.txt から読み込まれた内容は、変更の有無にかかわらず、test2.txt に書き込まれます。
File open file=test.txt id="testfile"
...
File close id="testfile" save=false
ファイルを閉じ、変更をすべて破棄します。「testfile」IDは「File open」コマンドでファイルに割り当てられたため、「File close」コマンドだけでなく、これら2つのコマンド間の他のファイル呼び出しでも指定する必要があります。