2014-11-03 2 views
3

Я могу запустить my.exe из командной строки. Я могу запустить его из .bat. Но, когда я пытаюсь запустить их в SQL Server, .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' из командной строки, то он работает отлично.

+3

@closer, ваш голос незрелый. это чисто действительный (интересный) вопрос. –

+0

По моему опыту он должен работать. запустите это и сообщите нам, что результат 'EXEC master..xp_cmdshell 'whoami' –

+0

попробуйте добавить в начало вашей летучей мыши« pushd »% ~ dp0», а в конце файла добавить «popd» и сообщить нам, если это исправить проблему –

ответ

0

Я только добавив в качестве ответа на форматирование кода, но попытайтесь оборачивать ваши exec в попытке поймать так увидеть, что проблема ...

BEGIN TRY 
    exec master..xp_cmdshell '\\fs01\filefolder\runpgm.bat' 
END TRY 
BEGIN CATCH 
    SELECT @ERROR_MESSAGE() 
END CATCH 
+0

Спасибо. К сожалению, никакого исключения не было. Теперь, если у меня есть неправильная строка кода в .bat-файле, тогда я получаю строку результата после ошибочной строки: «REW» не распознается как внутренняя или внешняя команда, – maxweber

0

первопричины: .Net версии не было установленный на сервере SQL Server.

Long Описание:

SQL Server не отображается сообщение об ошибке. Также не Power Shell. Чтобы отлаживать, когда SQL Server бесшумно терпит неудачу с использованием master..xp_cmdshell, вам нужно выйти из SQL Server и отладить с командной оболочкой [DOS]. Командная оболочка вызывает всплывающее диалоговое окно, информирующее пользователя о том, что версия .Net не установлена. Или, конечно, вам понадобится удаленный доступ к компьютеру SQL Server, чтобы попробовать это. :-)

Смежные вопросы