- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチでfor文で文字列の中身を繰り返したい)
バッチでfor文で文字列の中身を繰り返したい
このQ&Aのポイント
- バッチで文字列の中身を繰り返す方法を探しています。
- for文を使用して区切られた文字列から要素を取り出したいのですが、正しく繰り返すことができません。
- 他の方法を使って半角スペースやタブ以外で区切られた文字列の中身を繰り返すことはできるのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
結論から書くと、この場合は、 for %%a in (%str:/= %) do echo %%a と、/ を空白に置換するのが簡単です。空白でなく、カンマかセミコロンでもいいです。 for %%a in (%str:/=,%) do echo %%a 以下、あなたの書いたものが何故だめかを書きます。 >for "delims=/" %%a in (%str%) do echo %%a >for "delims=/" %%a in ('echo %str%') do echo %%a こんな構文はありません。構文エラーです。 for /? をよく見てください。どこにこんな構文が書いてありますか?書いてないでしょ? >for /f "delims=/" %%a in ('echo %str%') do echo %%a これは構文は正しいです。/ 区切りの最初の塊を %%a で参照するという意味になります。 2番目以降を参照するには、 for /f "delims=/ tokens=1-5" %%a in ('echo %str%') do echo 1: %%a, 2: %%b, 3: %%c, 4: %%d, 5: %%e などのように、tokensで何番目の塊を参照したいかを指定して、%%a %%b などで参照する事になります。ただ、これでは望む結果は得られませんね。 for /f は、縦方向の繰り返しなので、横方向に繰り返すことは出来ません。 この場合、echo %str% の出力は1行なので、繰り返しは1回になります。
お礼
ありがとうございます。 期待した結果になりました。 > for /? すみません。よく見ていませんでした。