Comment exécuter un fichier de commandes à partir d'un travail planifié via SQL Server Agent

12

J'essaie d'exécuter un fichier de commandes (Windows) à partir d'un travail d'agent SQL Server sous SQL Server 2008 R2. Dans les étapes du travail, j'ai créé une nouvelle étape, définissez son type sur "Système d'exploitation (CmdExec)". J'ai d'abord essayé de ne mettre que le nom du fichier de commandes dans le champ "Commande". Il donne une erreur indiquant qu'il ne trouve pas le fichier.

J'ai ensuite essayé: cmd.exe c: \ test.bat

Cela commence, mais ne se termine jamais (et il ne semble pas que cela fonctionne de toute façon).

J'ai essayé de mettre le nom du fichier de commandes entre guillemets: cmd.exe "C: \ test.bat" mais cela ne fait aucune différence.

Quelle est la combinaison magique pour que cela fonctionne?

Paul Mrozowski
la source
Utilisiez-vous le chemin complet lorsque vous avez obtenu l'erreur «fichier introuvable»? Le chemin est-il valide sur le serveur d'exécution, pas seulement sur votre poste de travail? Les chemins dans le fichier batch sont-ils absolus?
Jon of All Trades,
Oui, j'utilise le chemin complet. Il s'agit du chemin correct sur le serveur qui l'exécute. Le fichier batch n'est rien de plus qu'un simple test: echo> C: \ temp \ itworks.txt
Paul Mrozowski

Réponses:

11

Si la mémoire me sert correctement:

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

Des guillemets sont nécessaires s'il y a des espaces dans le chemin ou le nom de fichier

SqlACID
la source
1

Vérifiez également les autorisations utilisées pour le service Job Agent. Il se peut que l'utilisateur exécutant le service ne soit pas autorisé à voir le fichier.

Bonne chance

Dan OBrien
la source
0

Vérifiez que vous disposez des autorisations pour exécuter le fichier de commandes sur ce lecteur et l'emplacement du dossier.

N'oubliez pas que lorsque vous l'exécutez manuellement, vos informations d'identification sont utilisées, mais lorsqu'il s'exécute automatiquement par l'Agent SQL, les informations d'identification et les autorisations de l'agent sont utilisées.

Phill H
la source
0

seulement "c:\test.bat"fera le travail

Ronald Tims
la source
1
Bonjour, Bienvenue sur le site. Bien que votre réponse puisse être utile, il est généralement préférable d'inclure plus de détails sur la raison pour laquelle cela fonctionnerait alors que la commande dans la question ne fonctionne pas.
Tom V - essayez topanswers.xyz