プロが教えるわが家の防犯対策術!

以下のようなバッチファイルをWin2008上で実行しようとしています
------------------------------
@echo on

set LOGFILE=C:\a.log
set CONF=C:\a.txt

FOR /F "tokens=1-3 delims=," %%i in (%CONF%) do (
echo %%i %%j %%k > %LOGFILE% 2>&1
)
------------------------------



C:\a.txtの中身はこのようになっています
------------------------------
a,b,c
e,f,g
------------------------------


期待する結果は「1.」なのですが.batを実行しても「2.」の結果がログに表示されます
どのように修正すれば期待の結果が得られますでしょうか
※ちなみに.batの実行ではなくコマンドプロンプトで[%%]を[%]に変更すれば正常に実行できました

1.
------------------------------
a b c
e f g
------------------------------

2.
------------------------------
e f g
------------------------------

A 回答 (1件)

echo %%i %%j %%k > %LOGFILE%



が悪いです。echo のたびに、ファイルの先頭から書いているので、最後に書いた行だけ残ります。

echo %%i %%j %%k >> %LOGFILE%

と、追加書きにするか、
(
FOR /F "tokens=1-3 delims=," %%i in (%CONF%) do (
echo %%i %%j %%k
)
) > %LOGFILE%
    • good
    • 0

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