私は会社のビルド マスターであり、コード デプロイの実行を担当しています。このプロセスの一部には、サーバー ログを監視して、すべてが成功し、オンラインに戻ることを確認することが含まれます。ログを自動的に開くバッチ スクリプトを作成したので、手動で行う必要はありませんでした。見たいサーバーを入力できるスクリプトを作成しました。これにより、そのサーバーからのすべての正しいログが開きます。私の問題は、一度に複数のサーバーに展開する必要があり、スクリプトを再実行する必要がないことを望んでいるため、ログを開いたときにスクリプトを最初からやり直したいということですが、何らかの理由で、ログを開くと常に閉じます。以下に使用しているコードの一部を提供します。
@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 セクションです。問題は、スクリプトの先頭にある :Begin ラベルに戻す必要がある GOTO Begin に到達しないことですよね? どんなアドバイスでも役に立ちます。私はバッチ スクリプトを作成した経験があまりなく、これを作成して私の生活を少し楽にしました。
EDITしたがって、実際にはこの NON_BATCH セクションに入ることはないようです。代わりに、Dev02.bat という、これらのログを開くために少し前に作成した別のバッチ ファイルを開きます。なぜそのファイルを呼び出しているのかよくわかりません。