FOR/Fコマンドは、ファイルの行を読み、「トークン= delims =」オプションに従ってトークンで彼らを分離。デフォルトでは、 "トークン"は行の最初のトークンを意味し、 "delims"にはスペースとタブ(指定されていない場合)が含まれます。このコマンドの:
for /f "usebackq" %%a in ("%TraderWorkspaceFile%") do echo %%a
が表示されるでしょう:
ABC
ADD
ABCSS
for /f "tokens=2 usebackq" %%a in ("%TraderWorkspaceFile%") do echo %%a
一方が表示されるでしょう:
1000
2000
3000
"delimsは=" と同じであることに注意してくださいデフォルト値なので無駄ですが、 "delims = "(delimsなし)は、最初のトークンに行全体を囲むトリックです。
:processToken
for /f %%f in ("%line%") do (
echo Got one token: %%f
)
goto :eof
はまったく同じことをするだろう...
あなたは、個々のスペース、または - も得ることができます:がすべての行の
for /f "usebackq delims=" %%a in ("%TraderWorkspaceFile%") do (
set line=%%a
call :processToken
)
goto :eof
:processToken
for /f "tokens=1 delims= " %%f in ("%line%") do (
echo Got one token: %%f
)
goto :eof
正しく表示されるでしょう最初のトークン
、この方法でサブルーチンのパラメータを使用してタブで区切られたトークンを作成します。 :processLine
echo First token: %1, second token: %2, third one: %3
goto :eof
このように呼び出さなければなりません(代わりに呼び出しの:processTokenは):
call :processLine %line%
すべての問題報告には、問題を示す最小のコードサンプルが必要です(実際には問題ありません)、予想される動作(やはり、あなたはあなたのコードを単純化しています。これを提供してください)と_actual_の動作(いいえ、どこでも見ることができません):-) – paxdiablo