命令是从cmd运行,但不是批处理文件
问题描述:
我有一个.bat
文件,其中我使用sqlldr从csv插入数据到oracle,但是当我双击.bat文件时,什么也没有发生。 但是,当我在cmd中复制它并运行它执行数据。 我不知道发生了什么路径错误或任何事情。命令是从cmd运行,但不是批处理文件
批处理文件
P:\Users\ashique.sheikh\VMI>sqlldr upi/upi DATA=P:\Users\ashique.sheikh\VMI\test.csv CONTROL=Insert.ctl LOG=Insert.log.
CTL文件
OPTIONs(SKIP=1)
LOAD DATA
INFILE "P:\Users\ashique.sheikh\VMI\test.csv"
INSERT into table DETAIL
REPLACE
fields terminated by ','
(ID,NAME,ADDRESS,CITY,MOBILE)
答
尝试在bat文件使用此行:当您运行cmd.exe的
start "" cmd.exe /c sqlldr upi/upi DATA=P:\Users\ashique.sheikh\VMI\test.csv CONTROL=Insert.ctl LOG=Insert.log
一些WinodwsXP有一个问题,因为不同的设置变量,并在运行.bat文件另一个。它是防病毒沙箱或其他类似的东西。
答
尝试添加路径CTL参数太多。我害怕windows搜索insert.ctl的路径,它没有找到它。
+0
我尝试使用此cd/d“P:\ Users \ ashique.sheikh \ VMI”sqlldr upi/upi DATA = P:\ Users \ ashique.sheikh \ VMI \ test。 csv CONTROL = P:\ Users \ ashique.sheikh \ VMI \ Insert.ctl LOG = Insert.log,并在P:\ Users \ ashique.sheikh位置放置一个Insert.ctl但不工作 –
通过双击,您启动'c:\ Windows \ system32'的homedir的'cmd'窗口,因此它可能在其中找不到'Insert.ctl'。 – Stephan
所以,我可以做什么,我可以把Insert.ctl那里。当我打开CMD它有地址P:\ Users \ ashique.sheikh –
要么提供完整的路径(见彼得的答案)或花'CD/D“ P:\ Users \ ashique.sheikh \ VMI“'到你的批处理文件。 – Stephan