如何使用批处理脚本打印 .log 文件的最后一行

GUR*_*PRA 2 batch-file

我正在尝试使用批处理脚本读取和打印带有 .txt、.logs 等扩展名的文件的最后一行。所以现在我已经在 .txt 文件上尝试了以下代码,该代码工作正常:

for /f "delims==" %%a in (D:\error.txt) do set lastline=%%a
echo %lastline%
Run Code Online (Sandbox Code Playgroud)

但类似地,当我尝试在 .log 文件上执行此操作时,我无法实现所需的输出,而且还会出现错误:

system cannot find the file
Run Code Online (Sandbox Code Playgroud)

我正在尝试的代码如下:

for /f "delims==" %%a in (C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs\error.log) do set lastline=%%a
echo %lastline%
Run Code Online (Sandbox Code Playgroud)

请帮助我,请指出我哪里出错了

Com*_*mpo 6

由于字符串中存在空格,因此需要使用双引号。因此,您将需要UseBackQ您的For /F.

For /F "UseBackQ Delims==" %%A In ("D:\error.txt") Do Set "lastline=%%A"
Echo %lastline%
Run Code Online (Sandbox Code Playgroud)

和:

For /F "UseBackQ Delims==" %%A In ("%ProgramFiles(x86)%\Apache Software Foundation\Apache2.2\logs\error.log") Do Set "lastline=%%A"
Echo %lastline%
Run Code Online (Sandbox Code Playgroud)