我希望能够从mssql中调用 exe 我的程序是在c:\ test
中调用 scramble.exe我在sql中使用了以下命令进行测试
* master.dbo.xp_cmdshell'C:\ WINDOWS \ system32 \ notepad.exe'*
当你执行它时它只是继续执行没有打开记事本 但如果您打开任务管理器,您可以看到记事本正在运行 如果您终止此过程,查询将停止
任何人都可以帮助他们 TA 杰拉德
答案 0 :(得分:6)
它无法正常工作,因为您不应该通过xp_cmdshell
调用交互式程序。通过xp_cmdshell
调用的程序在后台运行。尝试使用没有GUI的程序。
编辑:这适用于所有实现对话的应用程序。 This mskb explains it pretty well
如果通过xp_cmdshell扩展存储过程运行程序,则程序仅在后台运行。 xp_cmdshell扩展存储过程不显示在其上下文中运行的程序的用户界面。如果通过xp_cmdshell运行的应用程序确实需要来自用户界面的用户交互(例如,应用程序尝试创建对话框或需要用户输入的消息框),则它将停止响应,因为它正在等待输入。但是,xp_cmdshell永远不会显示用户界面;因此,用户无法提供任何输入。