批量脚本在输入正确的用户名之前一直要求输入用户名

时间:2013-05-24 16:28:12

标签: login batch-file cmd username

我不擅长编写批处理脚本,但这是我想要实现的。我想从命令提示符执行一些sql(oracle)脚本,但脚本不能由一个特定的用户名运行。因此,每当我想以特定用户名运行脚本时,我都会看到一条消息“无法登录为USER”并提示重新输入用户名。这应该继续,直到输入任何其他用户名。到目前为止我有以下脚本。请帮忙。请忽略我糟糕的批处理脚本技巧。 :)

@ECHO OFF
Echo.
SET /P uname=Username:
IF %uname% == "notallowed" GOTO :LOGIN_ERROR GOTO :LOGIN

:LOGIN_ERROR
ECHO Username Cannot Be notallowed
SET /P uname=Username:
IF %uname% == "notallowed" GOTO :LOGIN_ERROR GOTO :LOGIN

:LOGIN
echo.
SET /P pass=Password:
echo.
SET /P mydatabase=Database:
echo.
rem set oracle_sid=ins
sqlplus -s %uname%/%pass%@%mydatabase% 
@C:/My_Folder/test.sql \n
sqlplus exit

非常感谢!

2 个答案:

答案 0 :(得分:1)

试试这个......

@ECHO OFF

:GET_USER
ECHO.
SET /P uname=Username:
IF %uname%==notallowed (
  ECHO Username Cannot Be notallowed
  GOTO GET_USER
)

REM The rest of the script...

答案 1 :(得分:0)

使用If语句并添加goto" marker。"示例

:login
set /p username=
If %username% == "CorrectUsername" goto next
GOTO login
:next
'Rest of your code goes below.