我正在尝试从命令提示符中读取登录cridentials以执行一系列SQL*Loader脚本.
我能够看到使用set v_设置变量.但是,我无法访问这些值.
测试文件:
@echo off
set /P v_user = Username:
set /P v_pass = Password:
set /P v_db = Database:
ECHO Username: "%V_USER%"
ECHO Password: "%V_PASS%"
ECHO Database: "%V_DB%"
set v_
pause
Run Code Online (Sandbox Code Playgroud)
实际结果结果:
Username: 1 <-- Input
Password: 2 <-- Input
Database: 3 <-- Input
Username: ""
Password: ""
Database: ""
v_db =3
v_pass =2
v_user =1
Run Code Online (Sandbox Code Playgroud)
预期结果结果:
Username: 1 <-- Input
Password: 2 <-- Input
Database: 3 <-- Input
Username: "1"
Password: "2"
Database: "3"
v_db =3
v_pass =2
v_user =1
Run Code Online (Sandbox Code Playgroud)
有可能的使用:
@echo off
set /P v_user = Username:
set /P v_pass = Password:
set /P v_db = Database:
sqlldr %v_user%/%v_pass%@%v_db% CONTROL='TABLE_T1.ctl' log='logs/TABLE_T1.log' bad='bad/TABLE_T1.bad' skip=1
sqlldr %v_user%/%v_pass%@%v_db% CONTROL='TABLE_T2.ctl' log='logs/TABLE_T2.log' bad='bad/TABLE_T2.bad' skip=1
pause
Run Code Online (Sandbox Code Playgroud)
删除=set语句中的空格:
echo off
set /P v_user=Username:
set /P v_pass=Password:
set /P v_db=Database:
ECHO Username: "%V_USER%"
ECHO Password: "%V_PASS%"
ECHO Database: "%V_DB%"
set v_
pause
Run Code Online (Sandbox Code Playgroud)
另一种方法是更改ECHO语句以包含与变量名称和=符号之间使用的SET语句相同数量的尾随空格:
@echo off
set /P v_user = Username:
set /P v_pass = Password:
set /P v_db = Database:
ECHO Username: "%V_USER %"
ECHO Password: "%V_PASS %"
ECHO Database: "%V_DB %"
set v_
pause
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6623 次 |
| 最近记录: |