0

我是我公司的构建大师,负责运行我们的代码部署。此过程的一部分涉及监视服务器日志以确保一切成功并重新上线。我编写了一个批处理脚本来自动打开日志,所以我不必手动执行。我编写了一个脚本,我可以在其中输入我想查看的服务器,它将打开该服务器的所有正确日志。我的问题是,我希望脚本在打开日志后重新开始,因为有很多时候我需要一次部署到多个服务器并且我不想重新运行脚本,但是出于某种原因,它总是在打开日志后关闭。我将在下面提供一些我正在使用的代码。

@echo off  
:Begin  
    echo.  
    echo Select Environment (HELP to List Options)  
    set /p Environment=""  

if "%Environment%" == "HELP" (  
GOTO LIST_ENV  
) else if "%Environment%" == "Stop" (  
GOTO:EOF  
) else if "%Environment%" == "Dev02" (  
%Environment% = dgisweb02  
GOTO NON_BATCH

此部分提示我输入服务器名称或 HELP,以获取服务器列表。然后它通过 if/if else 语句为我想要的环境设置正确的服务器名称。我有更多环境,但没有必要出于这个问题的目的将它们全部列出。

:NON_BATCH  
    %SystemRoot%\explorer.exe "\\%Environment%\gwlogs\ContactManager\logs\ablog.log"  
    %SystemRoot%\explorer.exe "\\%Environment%\gwlogs\BillingCenter\logs\bclog.log"  
    %SystemRoot%\explorer.exe "\\%Environment%\gwlogs\ClaimCenter\logs\cclog.log"  
    %SystemRoot%\explorer.exe "\\%Environment%\gwlogs\PolicyCenter\logs\pclog.log"  
    GOTO Begin

这是当我输入“Dev02”时它会跳转到的 NON_BATCH 部分。问题是它永远不会到达 GOTO Begin,它应该将它发送回脚本顶部的 :Begin 标签,对吗?任何建议都会有所帮助,我没有太多制作批处理脚本的经验,只是为了让我的生活更轻松一些。

编辑所以它似乎从未真正进入这个 NON_BATCH 部分。相反,它会打开一个单独的批处理文件,该文件是我不久前创建的,用于打开这些日志,称为 Dev02.bat。我不确定它为什么要调用该文件。

4

1 回答 1

0

我不知道这是否会有所帮助,因为它似乎永远不会到达最后一行,但是重新启动脚本的一种简单方法是让它再次调用自身并在执行此操作后退出。它是查看批处理文件是否到达代码末尾的一种解决方法。

:NON_BATCH
%SystemRoot%\explorer.exe "\%Environment%\gwlogs\ContactManager\logs\ablog.log"
%SystemRoot%\explorer.exe "\%Environment%\gwlogs\BillingCenter\logs\bclog.log"
%SystemRoot%\explorer.exe "\%Environment%\gwlogs\ClaimCenter\logs\cclog.log"
%SystemRoot%\explorer.exe "\%Environment%\gwlogs\PolicyCenter\logs\pclog.log"
./thisscript.bat
exit
于 2020-09-15T19:54:24.417 回答