首页 文章

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

提问于
浏览
1

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

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

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

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

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

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

2 回答

  • 1

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

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

    或删除引号

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

相关问题