3

コマンド ラインから my.exe を実行できます。.bat から実行できます。しかし、SQL Server でそれらを実行しようとすると、.exe が実行されないように見えます。

exec master..xp_cmdshell '\\fs01\filefolder\runpgm.bat'

これは .bat を実行しますが、それが実行する .exe は実行されません。

echo %date% %TIME% >> \\fs01\filefolder\test.txt
\\fs01\filefolder\CallClickSoftWS.exe >> \\fs01\filefolder\test.txt
echo %date% %TIME% >> \\fs01\filefolder\test.txt
echo "Done" >> \\fs01\filefolder\test.txt
exit

コマンドラインから「\fs01\filefolder\runpgm.bat」を実行すると、正常に動作します。

4

2 に答える 2

0

私はこれをコードフォーマットの答えとして追加しているだけですがexec、try catchでラップしてみて、問題が何であるかを確認してください...

BEGIN TRY
    exec master..xp_cmdshell '\\fs01\filefolder\runpgm.bat'
END TRY
BEGIN CATCH 
    SELECT @ERROR_MESSAGE()
END CATCH
于 2014-11-03T15:57:33.610 に答える
0

根本原因: .Net バージョンが SQL Server サーバーにインストールされていません。

長い説明:

SQL Server はエラーを表示しません。Power Shell もそうではありません。master..xp_cmdshell を使用して SQL Server がサイレント モードで失敗したときにデバッグするには、SQL Server を終了し、[DOS] コマンド シェルでデバッグする必要があります。コマンド シェルでは、.Net のバージョンがインストールされていないことをユーザーに知らせるダイアログがポップアップ表示されます。もちろん、これを試すには、SQL Server コンピューターにリモート接続する必要があります。:-)

于 2014-11-13T21:27:12.440 に答える