10个以上时的批处理文件选择命令
batch file choice command when more than 10 number
我只想列出我所有的接口网络并选择一个。
但是,我有超过 10 个接口(实际上是 12 个)然后出现错误。无法做出选择
我如何使用 ABCDEFGHIJKLMNOPQ... 代替 12345678...
这是我的代码:
'''
@echo off
cls
setLocal enableDelayedExpansion
set c=0
set "choices="
echo Your Interfaces -
for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do (
set /a c+=1
set int!c!=%%B
set choices=!choices!!c!
echo [!c!] %%B
)
choice /c !choices! /m "Select The Number of Your Interface Please: " /n
set interface=!int%errorlevel%!
set Connex="%interface%"
'''
通过添加将给定索引转换为给定列表中的字符的函数 keys
,您可以添加更多选项。由于 errorlevel 以 1 开头,因此永远无法使用 0 索引,因此它只是由一个无用的 _
填充。
您可以将任何字符(在选择命令中有效)添加到键列表。
如果你想以数字开头,然后是字母,你可以这样做 set keys=_123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
@echo off
cls
setLocal enableDelayedExpansion
set c=0
set "choices="
echo Your Interfaces -
for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do (
set /a c+=1
call :ResolveChar !c!
set int!retval!=%%B
set choices=!choices!!retval!
echo [!retval!] %%B
)
choice /c !choices! /m "Select The Number of Your Interface Please: " /n
call :ResolveChar %errorlevel%
set interface=!int%retval%!
set Connex="%interface%"
echo %Connex%
goto :eof
:ResolveChar
SETLOCAL
set keys=_ABCDEFGHIJKLMNOPQRSTUVWXYZ
set _startchar=%1
CALL SET char=%%keys:~%_startchar%,1%%
ENDLOCAL & SET retval=%char%
goto :eof
我只想列出我所有的接口网络并选择一个。 但是,我有超过 10 个接口(实际上是 12 个)然后出现错误。无法做出选择 我如何使用 ABCDEFGHIJKLMNOPQ... 代替 12345678... 这是我的代码:
'''
@echo off
cls
setLocal enableDelayedExpansion
set c=0
set "choices="
echo Your Interfaces -
for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do (
set /a c+=1
set int!c!=%%B
set choices=!choices!!c!
echo [!c!] %%B
)
choice /c !choices! /m "Select The Number of Your Interface Please: " /n
set interface=!int%errorlevel%!
set Connex="%interface%"
'''
通过添加将给定索引转换为给定列表中的字符的函数 keys
,您可以添加更多选项。由于 errorlevel 以 1 开头,因此永远无法使用 0 索引,因此它只是由一个无用的 _
填充。
您可以将任何字符(在选择命令中有效)添加到键列表。
如果你想以数字开头,然后是字母,你可以这样做 set keys=_123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
@echo off
cls
setLocal enableDelayedExpansion
set c=0
set "choices="
echo Your Interfaces -
for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do (
set /a c+=1
call :ResolveChar !c!
set int!retval!=%%B
set choices=!choices!!retval!
echo [!retval!] %%B
)
choice /c !choices! /m "Select The Number of Your Interface Please: " /n
call :ResolveChar %errorlevel%
set interface=!int%retval%!
set Connex="%interface%"
echo %Connex%
goto :eof
:ResolveChar
SETLOCAL
set keys=_ABCDEFGHIJKLMNOPQRSTUVWXYZ
set _startchar=%1
CALL SET char=%%keys:~%_startchar%,1%%
ENDLOCAL & SET retval=%char%
goto :eof