如何启动cmd窗口并在bat文件中发出尾部请求?

如何启动cmd窗口并在bat文件中发出尾部请求?

我可以打开一个 cmd 窗口并通过输入如下内容来启动尾部:

tail -f C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log

这可能是一个愚蠢的问题,但是如何在批处理文件中做到这一点?

这应该很简单,但实际上却行不通——我尝试了几种方法,但都没有成功。有人能告诉我我做错了什么吗?

ECHO OFF
CD C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\
cmd
tail -f sites.log

我也尝试过:

ECHO OFF
start cmd tail -f C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log

(我正在使用 Win7 Ultimate,在 64 位机器上,如果这有任何影响的话)

答案1

我可以打败它。只需创建一个快捷方式并将其放入目标字段中:

cmd.exe /K tail.exe "C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log"

它只有一个命令行,因此不需要 BATCH 文件。

如果你确实想要一个脚本文件,那么请执行以下操作:

@echo off
tail.exe "C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log"

要不就

@tail.exe "C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log"

因为它只有一行。

我猜你遇到的问题是你将批处理文件命名为tail.bat。然后在其中你只使用了tail C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log。这导致你的脚本引用自身,因为 DOS 将首先查看当前目录。它最终会tail.bat C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log一遍又一遍地调用。

更新

如果您希望窗口保持打开状态,则有几个选项。您可以使用以下pause命令:

@tail.exe "C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log"
@pause

或者,您可以在终端内启动一个新 shell,该 shell 在完成后仍保持打开状态。这将导致父 shell 以及终端本身保持打开状态:

@cmd.exe /K tail.exe "C:\Oracle\WebCenter\Sites\11gR1\Sites\11.1.1.6.1\logs\sites.log"

如果您希望窗口轻松关闭,则该pause命令很合适。只需按任意键即可关闭。如果您通常希望在运行该命令后运行其他命令,则第二个选项更好。

相关内容