我经常在工作中激活防火墙,大部分时间我都在笔记本电脑上。使用顶行数字对我来说很难,因为我习惯了全键盘布局。多次进入网络适配器属性并更改静态IP地址并不好玩。我不只是想制作一个可以在我的电脑上使用的脚本。我希望我们的其他技术人员也可以使用它。如果你愿意的话,这是一个防弹的脚本。我只需要一段代码的帮助,剩下的就是我。 我想回应Net适配器接口,并在给出修改选项之前为用户提供要修改的适配器的选项。
我不知道它是否可能,但这就是我希望打印在用户端看到的内容:
NIC1
NIC2
NIC3
选择你的网卡:
这样的事情是否可能?任何输入将不胜感激。
内容: 查询并打印所有适配器,每个适配器附加一个数值。 用户输入与适配器关联的值。 这会将接口名称转储到变量中。我从那里拿走它。
@echo off
for /f "skip=3 tokens=1-4 delims= " %%a in ('netsh interface show interface') do (
@echo %%d %%b %%a
)
这将显示我想要的信息,但现在我想要它。 有没有办法让每一行显示为自己的变量?
实施例。而不是显示令牌中所有行的每个变量(%% a,%% b,%% c,%% d),是否有办法为每个变量显示每个标记一行? 然后,用户可以输入该特定行的已分配变量,以指定该脚本的其余部分将修改哪个网络适配器。
答案 0 :(得分:0)
在循环中添加一个计数器以获取索引,您可以稍后选择 并为每个接口设置一个变量。
for /l
根据可用的适配器设置choice
的有效选项。
@echo off
setlocal enabledelayedexpansion
set count=0
for /f "skip=3 tokens=1-4 delims= " %%a in ('netsh interface show interface') do (
set /a count+=1
set interface[!count!]=%%d %%b %%a
@echo !count! %%d %%b %%a
)
for /l %%i in (1,1,%count%) do set number=!number!%%i
choice /c %number% /m "type index number"
set index=%errorlevel%
echo you choosed adapter %index%: !interface[%index%]!