NIC インターフェイス メトリックを変更する Windows スクリプトを作成しましたが、実行方法が原因で、2 つのコマンドに要約する必要があります。簡単に言うと、リモート エージェントを使用してシステム コマンドを呼び出すアプリケーション (BladeLogic Server Automation [BSA]) をサポートしています。
BSA がスクリプトを実行すると、各コマンドが個別のコマンド プロンプト環境で実行されるため、ルート文字列を格納するために使用される環境変数は永続的ではないという仮説を立てました。
for /f "delims=" %a in ('netsh interface ipv4 dump ^| find "nexthop=1.1.1.1"') do @set VAR1=%a
netsh interface ipv4 set %VAR1:~4% metric=200
for /f "delims=" %a in ('netsh interface ipv4 dump ^| find "nexthop=2.2.2.1"') do @set VAR2=%a
netsh interface ipv4 set %VAR2:~4% metric=500
スクリプトをそのまま要約し、コマンド プロンプトでテストしています。
for /f "delims=" %a in ('netsh interface ipv4 dump ^| find "nexthop=1.1.1.1"') do @set VAR1=%a && netsh interface ipv4 set %VAR1:~4% metric=200
for /f "delims=" %a in ('netsh interface ipv4 dump ^| find "nexthop=2.2.2.1"') do @set VAR2=%a && netsh interface ipv4 set %VAR2:~4% metric=500
残念ながら、2 番目のコマンドの適切な構文を認識していないようです。
The following command was not found: interface ipv4 set %VAR1:~4% metric=200
構文的に正しいと解釈されるように、2 番目のコマンドを追加できる別の方法はありますか? 私は提案にオープンです!