2016-11-14 10 views
2

私はファイルを持っており、それを通過するためにforコマンドを使用したいと思います。私の問題は、私は二重引用符文字[ "]でDELIMしようと、私は私のためには、次のようになりますので、それをエスケープする必要がある。二重引用符でデリートする方法forバッチスクリプトで

for /f tokens^=1^,2^,3^ delims^=^<^"^= %%a in ("%%i") do (

) 

そして、それは私が削除した場合ということですなぜ私は理解していません最後に[^] tokens tokens^=1^,2^,3**^**から私が取得エラー:?delimsは予想外であったことを

私は、二重引用符でDELIMおよび他のすべての文字をエスケープすることはできませんどのように上の任意の提案

答えて

4

問題が、ありますその引用符を囲まずにオプションを使用すると、 のようになります。 FOR /F "tokens=1,2 delims=[]" ...

ただし、引用符をデリミタ文字として使用する場合は、囲み引用符を使用することはできません。
そして、,=;<space>も標準のトークン区切り文字であるため、ほぼすべての文字をキャレットでエスケープする必要があります。

単一のオプショントークンを作成するためにスペースをエスケープする必要があります。 tokens=1,2,3 - - /fからdelims=<"=

しかし/Fを期待正確に一つまたはnoneオプショントークン
for /f tokens^=1^,2^,3 delims^=^<^"^= %%a
forに分割されます。

+0

私はこれに気をつけなければなりません、ok、thx – TBogdan

+2

@jebあなたは/ fトークン^ = 1-3delims^=^<^ "^ = %a'も行います。ハイフンは 'tokens^= 1-3 'の範囲でエスケープする必要はなく、オプション間のスペースは必要ありません。 – LotPings

関連する問題