问题描述
非常简单的问题,我相信解决方案很简单,但我根本无法在任何地方找到解决方案。请原谅我对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.
,因为它更快而且不会失败。