アプリ版:「スタンプのみでお礼する」機能のリリースについて

DOSコマンド(バッチ)で、ファイルの4行目から読み込んで順に処理し、
空白行が見つかったらそこで処理ループを抜けて処理を終了させたいのですが、
FOR /Fは空白行を読み飛ばしてしまうため、やりたい事ができません。

FOR /F "SKIP=4" %%A IN (file) DO (
IF "%%A" == "" GOTO :OUT
・・・処理・・・
)
:OUT

forで空白行をスキップしないようにするか、代替法があれば教えていただけないでしょうか。
よろしくお願いいたします。

A 回答 (1件)

バッチでなく、VBScriptなどをつかうのが正攻法でしょう。



バッチでやるとすると、空白行で無くして処理するしかないです。
findstr /n "^" を使うと行頭に行番号が振られます。
1:元のデータ
のように。
で、: で区切って区切りの後が空なら終了。

for /f "skip=4 delims=: tokens=1*" %%A in ('findstr /n "^" file') do (
if "%%B" == "" goto :OUT
~~~~~
)
:OUT

ただし、これだとデータに、コロンだけからなる行があると空行とみなしてしまいます。そこまで対応するのは非常に面倒。
    • good
    • 1
この回答へのお礼

ありがとうございました。
できないということで了解しました。
代替法について検討することにします。

お礼日時:2012/03/14 14:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A