PC の NIC 名を変更しようとしています。多くのNICがあります(それらは仮想です)。私はそのように彼らの名前を得ることができます
for /f "tokens=2 delems==" %%A in ('wmic nic where "Description like 'foo'" get netconnection id /value') do (
echo %%A
)
そのループ内で netsh を使用して名前を変更したいと思います。残念ながら、ターゲット名は単純な増分番号ではありません。だから私はやった
set names[0]=name1
set names[1]=name two
set names[2]=name test
set local ENABLEDELAYEDEXPANSION
set /a idx=0
for /f "tokens=2 delems==" %%A in ('wmic nic where "Description like 'foo'" get netconnectionid /value') do (
echo names[!idx!]
set /a idx=!idx!+1
)
これは出力します
names[0]
names[1]
names[2]
でもやってみたら
set names[0]=name1
set names[1]=name two
set names[2]=name test
set local ENABLEDELAYEDEXPANSION
set /a idx=0
for /f "tokens=2 delems==" %%A in ('wmic nic where "Description like 'foo'" get netconnectionid /value') do (
echo %names[!idx!]%
set /a idx=!idx!+1
)
ガベージ出力が得られます。前の例で生成された文字列を変数として評価する方法はありますか? 次に、それを netsh に渡して名前を変更できます。