Как запустить пакетный файл из запланированного задания через агент SQL Server

12

Я пытаюсь запустить пакетный файл (Windows) из задания агента SQL Server под SQL Server 2008 R2. В рабочих шагах я создал новый шаг, установив его тип «Операционная система (CmdExec)». Сначала я попытался указать только имя командного файла в поле «Команда». Выдает ошибку, что не может найти файл.

Тогда я попробовал: cmd.exe c: \ test.bat

Это начинается, но никогда не завершается (и, похоже, все равно не работает).

Я попытался обернуть имя командного файла в кавычки: cmd.exe "C: \ test.bat", но это также не имеет никакого значения.

Какая магическая комбинация, чтобы заставить это работать?

Павел Мрозовский
источник
Вы использовали полный путь, когда вы получили ошибку «файл не найден»? Является ли путь действительным на исполняющем сервере, а не только на вашей рабочей станции? Являются ли пути в пакетном файле абсолютными?
Джон на все руки
Да, я использую полный путь. Это правильный путь на сервере, на котором он запущен. Пакетный файл - не более чем простой тест: echo> C: \ temp \ itworks.txt
Пол Мрозовский,

Ответы:

11

Если память мне не изменяет

cmd.exe /c "c:\test.bat"

Кавычки необходимы, если в пути или имени файла есть пробелы

SqlACID
источник
1

Также проверьте разрешения, используемые для Службы Агента Работы. Возможно, пользователь, запустивший службу, не имеет разрешения на просмотр файла.

Удачи

Дан OBrien
источник
0

Убедитесь, что у вас есть разрешения на запуск командного файла на этом диске и в папке.

Не забывайте, что когда вы запускаете его вручную, ваши учетные данные используются, но когда он запускается автоматически агентом SQL, используются учетные данные и разрешения агента.

Фил Н
источник
0

только "c:\test.bat"сделаю работу

Рональд Тимс
источник
1
Привет, добро пожаловать на сайт. Хотя ваш ответ может быть полезен, обычно лучше включить некоторые дополнительные сведения о том, почему это будет работать, а команда в вопросе - нет.
Том V - попробуйте topanswers.xyz