具有超过9个用户输入选项的批处理文件

时间:2016-03-16 18:25:45

标签: batch-file cmd

所以我有这个简单的快捷方式脚本,但是当我选择一个高于9的数字时,它会打开授权管理器并且无法识别第二个数字。我玩过这些设置,但无济于事,谷歌对这个设置没什么帮助。

@title Microsoft Management Console
@echo ┌───────────────MAIN MENU─────────────────▄
@echo │Choices:                                 █
@echo │                                         █
@echo │ 1. Authorization Manager                █
@echo │ 2. Certificates Local Computer          █
@echo │ 3. Certificates Current User            █
@echo │ 4. Component Services                   █
@echo │ 5. Computer Management                  █
@echo │ 6. Device Manager                       █
@echo │ 7. Disk Manager                         █
@echo │ 8. Event Viewer                         █
@echo │ 9. Local Users Manager                  █
@echo │10. Performance Manager                  █
@echo │11. Print Server                         █
@echo │12. Services                             █
@echo │13. Shared Folder Manager                █
@echo │14. SQL Server Config                    █
@echo │15. Task Scheduler                       █
@echo │16. Windows Firewall                     █
@echo │17. Exit                                 █
@echo │                                         █
@echo └▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█

@set /p userinp=Type the number of your choice: 
@set userinp=%userinp:~0,1%
@if "%userinp%"=="1" azman.msc
@if "%userinp%"=="2" certlm.msc
@if "%userinp%"=="3" certmgr.msc
@if "%userinp%"=="4" comexp.msc
@if "%userinp%"=="5" compmgmt.msc
@if "%userinp%"=="6" devmgmt.msc
@if "%userinp%"=="7" diskmgmt
@if "%userinp%"=="8" eventvwr.msc
@if "%userinp%"=="9" lusrmgr.msc
@if "%userinp%"=="10" perfmon.msc
@if "%userinp%"=="11" printui /s /t2
@if "%userinp%"=="12" services.msc
@if "%userinp%"=="13" fsmgmt.msc
@if "%userinp%"=="14" sqlservermanager10.msc
@if "%userinp%"=="15" taskschd.msc
@if "%userinp%"=="16" wf.msc
@if "%userinp%"=="17" exit

1 个答案:

答案 0 :(得分:2)

更改

@set userinp=%userinp:~0,1%

@set userinp=%userinp:~0,2%

在原始版本中,您从第0个字符开始请求1个字符。第一个数字表示起始字符索引,第二个数字表示要获取的字符数。