2016-03-05 35 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