所以,我是批处理脚本的初学者:)
这是我的代码:
@echo.
@echo off
Set USER_ADM=LocAdmin
Set pwd=%cd%
Set choix=%1
@echo.
:ch
cls
@echo.
@echo Choisis ce que tu veux ouvrir
@echo.
@echo 1. CMD
@echo 2. Regedit
@echo 3. MMC
@echo.
Set /P choix=Choix du programme a demarrer en %USER_ADM% (1-3) :
@echo off
if '%choix%' =='1' goto :cmd
if '%choix%'=='2' goto :regedit
if '%choix%'=='3' goto :mmc
REM :error
REM @echo %choix% N'est pas un chiffre entre 1 et 3 !
REM goto ch
:cmd
runas /user:%USER_ADM% C:\Windows\SysWOW64\cmd.exe
goto ch
:regedit
runas /user:%USER_ADM% C:\Windows\regedit.exe
goto ch
:mmc
runas /user:%USER_ADM% "mmc %pwd%\MMC\Mymmc.msc"
goto ch
@pause > nul
如果我输入的不是1,2或3,我想留言。 我用" else"尝试了几件事。并转到错误但没有任何效果...
有人可以帮忙吗? 提前谢谢!
答案 0 :(得分:0)
您已经拥有代码来处理此问题:
:ch
cls
@echo.
@echo Choisis ce que tu veux ouvrir
@echo Autres trucs francais je ne pouvais pas etre derange tapant (a)
:
if '%choix%' =='1' goto :cmd
if '%choix%'=='2' goto :regedit
if '%choix%'=='3' goto :mmc
REM :error
REM @echo %choix% N'est pas un chiffre entre 1 et 3 !
REM goto ch
:cmd
但有两个问题。
代码已注释掉,这意味着除了1..3
之外的其他值只会转到执行选项1的代码。
即使您取消注释该代码,它也会打印错误消息并立即返回:ch
标签,清除屏幕。
第一个问题的解决方法很简单,只需从这三行中删除rem
个关键字。
对于第二个问题,你可以采用两种方式中的一种(至少)。
第一个选项是在pause
之前立即插入goto :ch
命令。这将在屏幕上显示错误消息,直到您输入内容为止。
第二个选项是不清除屏幕,而只是重新打印菜单。这可以通过在cls
标签之前将:ch
移至来完成。
(a)为我残暴的法语道歉,特别是(但不一定限于)缺乏口音: - )