我不擅长编写批处理脚本,但这是我想要实现的。我想从命令提示符执行一些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
非常感谢!
答案 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.