Я могу победить это. Просто сделайте ярлык и поместите его в поле назначения:
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
хороша, если вы хотите, чтобы окно легко закрывалось. Просто нажмите любую клавишу, и она исчезнет. Второй вариант лучше, если вы обычно хотите запускать другие команды после его запуска.