如何在批处理文件中将多行日志文件连接成单个变量?

时间:2012-09-18 09:23:39

标签: batch-file

我有一个日志文件,其中包含分隔多行的堆栈跟踪。我需要将此文件读入批处理文件并删除所有换行符。

作为第一步,我尝试了这个:

if exist "%log_dir%\Log.log" (
    for /F "tokens=*" %%a in ("%log_dir%\Log.log") do @echo %%a
)

我的期望是这会回显日志文件的每一行。然后我计划将这些行连接在一起,并在变量中设置该值。

然而,这段代码没有达到我的预期。我已经尝试更改delims和tokens选项的值,但我能得到的唯一输出是日志文件的绝对路径,而不是该文件的内容。

如何将变量设置为等同于删除换行符的文件中的文本行?

2 个答案:

答案 0 :(得分:1)

如果你想在FOR / F循环中使用文件名的引号,你也需要添加usebackq选项,否则你会得到一个字符串而不是你文件的内容。

for /F "usebackq delims=" %%a in ("%log_dir%\Log.log") do @echo %%a

答案 1 :(得分:0)

或删除引号

if exist "%log_dir%\Log.log" (
    for /F "tokens=*" %%a in (%log_dir%\Log.log) do @echo %%a
)