- ベストアンサー
Windows batで一部分を繰り返し実行する方法
- Windowsのbatファイルで特定の部分を繰り返し実行する方法について教えてください。
- batファイル内の指定行数以降を繰り返し実行する方法はありますか?
- batファイル内の一部を繰り返し実行した結果を別のファイルに出力するにはどうすればいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
他のご質問でCSVの取り込みについて回答しましたが、なるほど、こう言う事をやりたかったわけですね。 >一つのバッチで処理したいのですが、どうしたらよいでしょうか。 まず、今回のご質問の回答を。 Windowsのバッチではサブルーチンの定義ができますから、それを使います。 REM サブルーチンの呼び出し call :sub 引数1 引数2 ... exit /b :sub REM サブルーチン定義 setlocal REM ここに呼び出したい処理 endlocal exit /b ですが、呼び出される側の処理がそれなりに複雑で、可読性は却って悪くなるような気がします。 しかも この場合、サブルーチン内にも GOTO や LABEL を使う事になるので、修正する内にスパゲッティソース(って分かりますかね?)になる確率も高い。 お薦めできません。ハマる事、請け合いです。 (そもそもこの処理の構成自体が、ハマリそうな感じしますけど。。。) #1 さんの回答にあるとおり、素直にサブバッチをCALLする、これが最適なソリューションです。上司が「1つにしろ」と言ったら、ここの回答を見せてやればいいでしょうw それと、今回の質問とは関係ありませんが、もう一点、指摘があります。 > if %RR%==000 これだと、CSVの中身が 000 でも 00 でも 0 でも 00000 でも True になりますが、要件満たしてます? 000 だけを True にしたいなら if "%RR%"=="000" が正解です。
その他の回答 (1)
別バッチに出して CALL すれば? いままで色々な方が質問に回答してもらっているのに、お礼ぐらいしときなさいよ。 そのうち誰も回答してくれなくなりますな。
お礼
edp3142さん、ありがとうございます。 お礼が遅くなってすみません。 一つのバッチで処理したいのですが、どうしたらよいでしょうか。
お礼
utakataXEX さん 大変有難うございます。 また、詳しい指摘有難うございます。 今後ともよろしくお願い致します。