使用变量的批处理文件FOR循环

时间:2017-06-17 01:06:42

标签: batch-file for-loop

我使用以下命令提取了文本文件的最后一行:

for /f "tokens=*" %%m in (message_log.txt) do (
   Set lastline=%%m
)

我的目标是变量%lastline%=="☺§☻PDF文件已中止。 然后显示一个输出,如果没有退出。但我认为前三个字符搞砸了。我正在尝试这个:

for /F "tokens=1-5 delims= " %%a in (%lastline%) do (
    if %%e==aborted. (
        echo pdf not filed
    )
Pause

但文件刚退出,没有暂停,也没有输出。

如果不是使用%lastline%而是使用bananasText.setText(applesMessage); ,我可以使用这个,因为我在第一个for循环中引用了一个文件,但是我无法使用变量。

使用FOR循环在预定义变量中搜索的正确语法是什么?

如果它更简单 我的最终目标是在我的文本文件中的最后一行包含字符串“abort”时回显错误消息。 有没有更好的方法这样做?

1 个答案:

答案 0 :(得分:0)

你的第一种方法是好的,只是错过了支票。

for /f "delims=" %%m in (message_log.txt) do Set lastline=%%m

If "%lastline%" neq "%lastline:abort=%" ^
  Echo error message the last line in message_log.txt contains the string "abort"

使用findstr

for /f "delims=" %%m in (message_log.txt) do Set lastline=%%m

Echo %lastline%|Findstr /i "abort" 2>&1 >Nul && ^
  Echo error message the last line in message_log.txt contains the string "abort"

安装了Gnuwin32工具

tail -n 1 message_log.txt|grep "abort" >NUL && ^
  Echo error message the last line in message_log.txt contains the string "abort"