大概是你在asp里面没有处理好。

解决方案 »

  1.   

    bat在运行的时候会先出一个窗口.然后sql plus运行的时候再弹出一个窗口. 可能问题出在这里.
      

  2.   

    To dinya2003(OK):
       我现在的bat双击运行后,窗口会自动关闭的,因为有quit这句话阿。但是在asp里调用该bat时就憋在那里了,cmd和sqlplus进程都憋死了!
      

  3.   

    在VB中这么用就行了.把quit换成exit看看,
      

  4.   

    TO dinya2003(OK):
       在VB中能释放掉么?不会憋死么??
      

  5.   

    --在VB中没有任何问题,下面是我的测试,参考:--文件路径  C:\test\test.bat
                C:\test\sql.txt
                
    --BAT文件:
    sqlplus 用户名/密码@数据库SID @C:\test\sql.txt--SQL.TXT文件:
    spool c:\test\test.log
    select * from testa;
    select * from testc;
    spool offexit;
    --VB中的事件:
    Private Sub Command1_Click()
        Dim RetVal
        RetVal = Shell("C:\test\test.bat", 1)  
    End Sub
    --点按钮以后生成C:\test\test.log文件,没有任何问题.
      

  6.   

    TO dinya2003(OK):
       的确是这样,vb里没有问题,可能还是vb和asp实行exe文件机制不同,vb里可以直接用shell来实行,但是asp是用cmd来调用其他exe,而且作为web语言,肯定安全性有限制,哎,愁死我了!
      

  7.   

    问题已解决,是我批处理路径没有写全导致的。修正后的HWEX001.bat:
    E:\SQLPLUS uid/pwd@sid @E:\test.sql修正后的test.sql:
    @E:\F44CK101.sql
    @E:\F44CK102.sql
    ...
    quit这时在asp中就能正常调用了,不会再憋死了!哎,我就是被双击HWEX001.bat能正常运行所迷惑了,其实在asp中运行批处理,批处理里的内容都要带路径的,即使都在同一目录也是要带的!