MachineX は、サーバーのフェールオーバー ステータスに応じて、UNC パスを介して MachineA またはMachineBのいずれかへのバッチ ファイルを呼び出しています。フェールオーバーが発生した場合、MachineX はパス\\MachineB\files\Batch1.batを介してバッチを呼び出すことを認識しています。
追加のパラメーターを使用したり、MachineX が呼び出すマシンを認識する方法を利用したりせずに、マシン上の他のファイルにアクセスできるように、マシンが実行されているマシンをバッチ内で知る必要があります。これを行うには、マシン名を変数に格納します。
実行中のマシンが MachineX であるため、ホスト名変数を使用してバッチをプルすることはできませんが、バッチは常に完全修飾 UNC パスで呼び出されるため、引数 %0 にはパスにマシン名が含まれます。システムはミラーリング セットアップの一部であるため、バッチ ファイルは常に同一に保たれ、ハード コーディングはできません。
外部に移動することなく、バッチ ファイル内からマシン名を取得する最も簡単な方法は何ですか? 前もって感謝します。
編集:さて、私はそれを理解しました:
for /f "tokens=1,2,3,4,5 delims=\" %%a in ('echo %~p0') do set svrpth=%%a
これは、パス トレイルに 5 つ以下のフォルダーが存在する限り、問題なく機能します。これは、この目的では許容されます。
ご助力いただきありがとうございます。