2016-03-05 42 views
1

我试图实现this的例子,但我需要从用户输入发送参数t.sql,像这样:认沽可变进的for..in

t.sql

set timing off 
set feedback off 
set pages 0 
select sysdate from dual; 
exit 

批处理文件

SET /P %arg%="Please enter argument for t.sql: " 
FOR /F "usebackq delims=!" %%i IN (`sqlplus -s u/[email protected] @t.sql %arg%`) DO set xresult=%%i 
echo %xresult% 

但sqlplus中没有收到%ARG%

这看起来很简单但如何正确地将%arg%的内容放入IN(``)?

+3

'SET/P “ARG =为t.sql请输入说法:”'。只有当你想要检索arg的值时才使用百分号,而不是在设置它时使用百分号。 – rojo

回答

1

你应该写这样的:

@echo off 
SET /P "arg=Please enter argument for t.sql: " 
echo %arg% 
Pause 
FOR /F "usebackq delims=!" %%i IN (`sqlplus -s u/[email protected] @t.sql %arg%`) DO set xresult=%%i 
echo %xresult% 
Pause