- ベストアンサー
DOSコマンドのforで空白行をスキップしない
DOSコマンド(バッチ)で、ファイルの4行目から読み込んで順に処理し、 空白行が見つかったらそこで処理ループを抜けて処理を終了させたいのですが、 FOR /Fは空白行を読み飛ばしてしまうため、やりたい事ができません。 FOR /F "SKIP=4" %%A IN (file) DO ( IF "%%A" == "" GOTO :OUT ・・・処理・・・ ) :OUT forで空白行をスキップしないようにするか、代替法があれば教えていただけないでしょうか。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
バッチでなく、VBScriptなどをつかうのが正攻法でしょう。 バッチでやるとすると、空白行で無くして処理するしかないです。 findstr /n "^" を使うと行頭に行番号が振られます。 1:元のデータ のように。 で、: で区切って区切りの後が空なら終了。 for /f "skip=4 delims=: tokens=1*" %%A in ('findstr /n "^" file') do ( if "%%B" == "" goto :OUT ~~~~~ ) :OUT ただし、これだとデータに、コロンだけからなる行があると空行とみなしてしまいます。そこまで対応するのは非常に面倒。
お礼
ありがとうございました。 できないということで了解しました。 代替法について検討することにします。