我有一个日志文件,其中包含分隔多行的堆栈跟踪。我需要将此文件读入批处理文件并删除所有换行符。
作为第一步,我尝试了这个:
if exist "%log_dir%\Log.log" (
for /F "tokens=*" %%a in ("%log_dir%\Log.log") do @echo %%a
)
我的期望是这会回显日志文件的每一行。然后我计划将这些行连接在一起,并在变量中设置该值。
然而,这段代码没有达到我的预期。我已经尝试更改delims和tokens选项的值,但我能得到的唯一输出是日志文件的绝对路径,而不是该文件的内容。
如何将变量设置为等同于删除换行符的文件中的文本行?
答案 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
)