Я могу открыть окно 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 ответ1

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"

так как это только 1 строка.

Я догадываюсь, что проблема была в том, что вы назвали свой BATCH-файл 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

или вы можете установить новую оболочку внутри терминала, которая остается открытой после ее завершения. Это приведет к тому, что родительская оболочка останется открытой, а также сам терминал:

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

Команда pause хороша, если вы хотите, чтобы окно легко закрывалось. Просто нажмите любую клавишу, и она исчезнет. Второй вариант лучше, если вы обычно хотите запускать другие команды после его запуска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .