在 select 之后不显示值(批处理和 Oracle)

Don't display value after select (Batch, & Oracle)

我正在处理批处理文件,这是我目前拥有的:

@ECHO OFF

:start
echo Select Action:
echo 1 - Make Update
echo 2 - Revert Changes

set /p input=

If %input%==1 goto :choose1
If %input%==2 goto :choose2

:choose1
echo Selected Option 1
echo ENTER PASSWORD FOR USER:
SQLPLUS  -S USER@SID @update.sql
goto end

:choose2
echo Selected Option 2
REM it's just example
SQLPLUS  -S USER@PASSWORD\SID @reupdate.sql
goto end

:end
pause

在我 运行 它和 select 1 或 2 之后我显示了选择的号码:

我有两个问题:

1)如何不显示"selected 1"(标红)

2) 进入我的 update.sql 我只写:

  update userB.tableA set column_name = 'XXX' where colZ = '123' and colT= 'ABC';
  exit;

没问题还是我需要输入 begin/end ?

使用 cls 使批处理看起来更干净并去除不需要的项目,例如选择 1.

@echo off
:start
cls
echo ** Select an Action **:
echo 1 - Make Update
echo 2 - Revert Changes

set /p input=

If %input%==1 goto :choose1
If %input%==2 goto :choose2

:choose1
cls
echo You selected Option %input%
echo ENTER PASSWORD FOR USER:
SQLPLUS  -S USER@SID @update.sql
goto end

:choose2
cls
echo You selected Option %input%
REM it's just example
SQLPLUS  -S USER@PASSWORD\SID @reupdate.sql
goto end

:end
pause

或使用选择命令代替 set /p

@echo off
cls
:start
echo 
echo Select 1 - Make Update\n
echo Select 2 - Revert Changes

choice /c 12 /n

If %errorlevel%==1 goto :choose1
If %errorlevel%==2 goto :choose2

:choose1
cls
echo You selected Option %errorlevel%
echo ENTER PASSWORD FOR USER:
SQLPLUS  -S USER@SID @update.sql
goto end

:choose2
 cls
echo You selected Option %errorlevel%
REM it's just example
SQLPLUS  -S USER@PASSWORD\SID @reupdate.sql
goto end

:end
pause

然后在问题 2 中,添加 begin/end 只会使其成为 plsql,因此除非您需要 plsql 脚本,否则不需要。