0
私はWindowsのバッチスクリプトに慣れています。 テキストファイル、Ignore.txtファイルの値を取得してローカル変数として保存しようとしています。Windowsのバッチでforループからトークン値を取得するバッチ
コマンドファイル:
@Echo off
setlocal enabledelayedexpansion
for /F "tokens=1,2,3" %%i in (Ignore.txt) do (
echo. %%i
echo. %%j
echo. %%k
set value1=%%i
set value2=%%j
set value3=%%k
)
Echo. Value1: !value1!
Echo. Value2: !value2!
Echo. Value3: !value3!
Endlocal
Ignore.txt:
出力:
*.svc
*.jpg
*.png
しかし、結果は残念ながら間違った一つの変数を印刷しています
*.svc
*.jpg
*.png
Value1: *.png
Value2:
Value3:
ここで何か間違っていると助けてください。また、この情報を取得するための他のよりよい方法に関する提案。
ファイル内の行には(%% iによって消費される)1つのトークンしかないので、 '%% j'と' %% k'はNULLです。 – CristiFati
@CristiFati、そうだとしたら、どのようにエコーが正しく値を表示していますか? – sunny24365
_Ignore.txt_には3行があります: 'for'ループは3回実行され、毎回' echo。 %% i'は画面上に出力を生成し、もう1つは(変数がNULL /空であるため) '@Echo off'によって抑制されます。 – CristiFati