2

次のようにフォーマットされた値を含むファイルを処理しようとしています。

 Token1    Token2            Token3    Token4
"ValueA", "ValueB, ValueC", "ValueD", "Value E"

(わかりやすくするためにヘッダーを追加しました)。トークン 2 と 4 だけが必要です。

次のコマンド:

for /f "tokens=2,4 delims=," %a in (TestSource.txt) do @echo %a %b

動作しますが、もちろん Token2 にコンマが含まれている場合 (上記の例のように)、FOR コマンドはそれ以上のことを認識していないように見えるため、そのコンマで壊れます。

この制限に対する既知の回避策はありますか - 私はそれをかなり調べて、「usebackq」コマンドを見ましたが、これは私が必要としているものではないと思います.

ありがとう!

4

1 に答える 1

1
for /f tokens^=3^,7^ delims^=^" %f in (data.csv) do echo "%f", "%g"

コマンドに「オプション」文字列を含める方法は 2 つありますfor。スペースや特殊文字を含めることができるため、最初は通常の引用符付き文字列です。しかし場合によっては、それだけでは十分ではありません。

2 番目の方法は、含まれているコードに示されています。オプション文字列内のすべての区切り文字をエスケープします。

于 2014-03-24T06:52:11.937 に答える