使用SQL Server中的参数运行exe文件

时间:2017-05-12 23:20:24

标签: sql sql-server

enter image description here我创建了一个控制台应用程序,现在我想从SQL Server执行这个.exe文件。运行此查询只会获得null输出。请帮帮我。

    DECLARE @CMDSQL VARCHAR(1000), 
            @Reportname VARCHAR(100),
            @TerminalCode VARCHAR(10),
            @FinYear VARCHAR(10)  

    SET @Reportname =('05 - Import Load Delivery')  
    SET @FinYear='2017-18'  
    SET @TerminalCode='BOM'  
    SET @CMDSQL = '"D:\ExportToExcel.exe" ' + @Reportname + ' ' + @TerminalCode + ' ' + @FinYear  

    --print @CMDSQL  
    Exec master..xp_cmdshell @CMDSQL

2 个答案:

答案 0 :(得分:3)

试试这个:

SET @CMDSQL = 'CMD /S /C " "D:\ExportToExcel.exe"  "' + @ReportName + '" "' + @TerminalCode + '" "' + @FinYear + '" "'

引用@DanGuzman建议的各个参数非常重要。

答案 1 :(得分:0)

此帖子没有答案。我发现在双引号中包含您的ENTIRE语句是可行的。因此,您最终使用嵌套的双引号。

所以在您的示例中:

SET @CMDSQL = 'CMD /S /C " ""D:\ExportToExcel.exe"  "' + @ReportName + '" "' + @TerminalCode + '" "' + @FinYear + '" ""'

或者在我试图找出的地方:

EXEC xp_cmdshell '""C:\XML\ExecURL.exe" "http://devserver/app/retreiveshippinglabels/RGAGetLabels?RMA_NO=171269""';