2017-06-15 13 views
0

私は、テキストファイルの行を1つずつ戻す少しのコードを書いています。それは動作しますが、最後に空白の結果を返します。空白を返すFOR/F

どうすれば空白の結果を取り除くことができますか?

はこれまでのところ、次のようにコードは次のとおりです。

@echo off 

FOR /F "tokens=*" %%a IN (test.txt) do call :maq %%a 

:maq 
Echo %* 
+0

最後にファイルに最後に「NL」文字がありますか? – dcg

+0

ファイルには2行があります:192.168.0.1と192.168.0.2 – FerPavao

答えて

1

私はあなたが:maqとあなたのforgoto :eofを置くべきだと思う、それは次のようになります。

@echo off 
FOR /F "tokens=*" %%a IN (test.txt) do call :maq %%a 
goto :eof 
:maq Echo %* 

は、そうでない場合は、何かをエコーエコーがあります、この場合、あなたのプログラムがパラメータを受け取っていない可能性があります。

+0

これは動作します!どうもありがとうございます!! eofは何を表しますか? – FerPavao

+0

'goto:eof'は実行があるコンテキストを壊します。 – dcg

+1

' goto:eof'は 'exit/B'と同じです。私は個人的にサブルーチンを終了するために 'exit/B'を好み、メインファイルを終了するために' goto:eof'を好む。 – Aacini

0

doループを反復処理した後、もう一度コードを実行して最後の行を実行しています。

FOR /F "tokens=*" %%a IN (test.txt) do echo %%a 

すべてが必要です。サブルーチンを使用する必要がある場合は、次のようにしてください:

@echo off 
FOR /F "tokens=*" %%a IN (test.txt) do call :maq %%a 
goto :eof 

:maq 
Echo %* 
goto :eof 
+0

返信ありがとう!これをサブルーチンで使うつもりなので、2番目の提案を使用しました。 :)何が:eofの略ですか? – FerPavao

+0

ファイルの終わり。最初のものはサブルーチンに陥らないようにし、もう1つはサブルーチンから戻ることです。 – RGuggisberg

関連する問題