Для этого используется системная хранимая процедура xp_cmdshell. Запуск этой процедуры по умолчанию запрещен. Чтобы включить эту возможность нужно выполнить следующий код:
-- Включение разрешения изменения расширенных опций.
EXEC sp_configure 'show advanced options', 1
GO
-- Обновление текущих настроек расширенных опций.
RECONFIGURE
GO
-- Включение возможности запуска внешних программ.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Обновление текущих настроек для запуска внешних программ.
RECONFIGURE
GO
Теперь для запуска bat-файла достаточно выполнить следующую команду:
EXEC master..xp_cmdshell 'test.bat'
Или эту, если вы хотите подавить вывод результатов:
EXEC master..xp_cmdshell 'test.bat', NO_OUTPUT
А вот пример вызова bat-файла с параметром:
DECLARE @param varchar(50)
DECLARE @cmd varchar(100)
SET @param = 'blog.yastrebkov.com'
SET @cmd = 'c:\test.bat ' + @param
EXEC master..xp_cmdshell @cmd
Другие примеры использования вы можете найти на сайте MSDN по этой ссылке.
3 comments:
Узнал много. Спасибо
Не могу выполнить EXEC master..xp_cmdshell 'c:\windows\system32\msg.exe console /server:userpc Сообщение'
А что пишет?
Post a Comment