1

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

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

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

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

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

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

4

2 回答 2

1

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

for /F "usebackq delims=" %%a in ("%log_dir%\Log.log") do @echo %%a
于 2012-09-18T09:36:02.170 回答
0

或删除引号

if exist "%log_dir%\Log.log" (
    for /F "tokens=*" %%a in (%log_dir%\Log.log) do @echo %%a
)
于 2017-02-20T11:06:24.420 回答