我正在尝试重命名 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 进行重命名。