コンピュータの名前を確認するバッチファイルを作成しようとしています。そのIPアドレスをそのコンピュータの対応するIPアドレスに設定します。IFステートメント内の変数を設定します(Windowsバッチファイル)
私は、新しいIPアドレスを格納するIPAddressという変数を持っています。次に、コンピュータ名を確認して新しいIPアドレスを割り当てるIF文があります。私の問題は、IF文の中で、私が望む新しいIPアドレスにIPAddress変数を設定すると、それが固執しないということです。設定した直後にIPAddress変数をエコーすると、元の状態です。
ここに私のコードです:
@echo off
SET IPAddress=192.168.1.1
IF %computername%==TEST (
ECHO "TEST" computer
SET IPAddress=192.168.1.50
ECHO New IP Address: %IPAddress%
) ELSE IF %computername%==BRIDGE (
ECHO "BRIDGE" Computer
SET IPAddress=192.168.1.25
ECHO New IP Address: %IPAddress%
)
pause
私は「BRIDGE」コンピュータ上だと私はこの出力を得る:
"BRIDGE" Computer
New IP Address: 192.168.1.1
Press any key to continue . . .
IF文の内部のSET文はdoesnの理由を私は理解できません働いているようだ。
アイデア?
ありがとうございます!
何千もの質問を読むcmd.exeがブロックに入るときにvarsを評価する括弧内の(コードブロック)を参照して、 '遅延拡張 'を使用します。実際の値を取得するには、遅延拡張を強制する必要があります。 – LotPings
トピック:あなたの乗り物は何ですか?私はDHではありません。主にXCとエンデューロ。後でコメントを削除します。 – Squashman
@Squashmanそれは2000年から注文されたDH自転車です...だから少し古くなってきていますが、私はそれが大好きです。私はそれについて本当に良い取引をしました、そうでなければ私はそれを買っていないでしょう。 :) – Jyclop