批量记录新行

问题描述

非常简单的问题,我相信解决方案很简单,但我根本无法在任何地方找到解决方案。请原谅我对batch的理解有限,我是unix人。

我有一个批处理 for 循环,它在用户定义的文件夹的内容上运行脚本。如果发生错误,脚本将向命令提示输出一条消息。我正在通过

记录这些消息
"%UserProfile%\Documents\Fooster\Logs\Failed_log.txt" 2>&1  (
for /f %%f in ('dir /s/b %arg1%') do call R-Portable\App\R-Portable\bin\Rscript.exe Scripts\fooster_io.R %%f %arg2% 
)

现在,这记录得很好,但每条消息都连接到下一条消息而没有换行符。我将如何插入换行符以便每条消息都有自己的行?

我试过了:

"%UserProfile%\Documents\Fooster\Logs\Failed_log.txt" 2>&1/n
"%UserProfile%\Documents\Fooster\Logs\Failed_log.txt" 2>&1 /n
"%UserProfile%\Documents\Fooster\Logs\Failed_log.txt" 2>&1 echo.
"%UserProfile%\Documents\Fooster\Logs\Failed_log.txt" echo. 2>&1

所有都不会产生预期的结果。有什么想法吗?

解决方法

看来,您的 fooster_io.R 本身并没有添加换行符。
但是您可以将“换行符”放入 for 循环中。

"%UserProfile%\Documents\Fooster\Logs\failed_log.txt" 2>&1  (
  for /f %%f in ('dir /s/b %arg1%') do (
    R-Portable\App\R-Portable\bin\Rscript.exe Scripts\fooster_io.R %%f %arg2% 
    echo(
  )
)

我使用 echo( 而不是 echo.,因为它更快而且不会失败。