Wie führe ich eine Stapeldatei von einem geplanten Auftrag über den SQL Server-Agenten aus

12

Ich versuche, eine (Windows-) Batchdatei in einem SQL Server-Agent-Job unter SQL Server 2008 R2 auszuführen. In den Auftragsschritten habe ich einen neuen Schritt erstellt und dessen Typ auf "Betriebssystem (CmdExec)" gesetzt. Ich habe anfangs versucht, nur den Batch-Dateinamen in das Feld "Befehl" zu schreiben. Es gibt einen Fehler, dass die Datei nicht gefunden werden kann.

Dann habe ich versucht: cmd.exe c: \ test.bat

Dies beginnt, endet aber nie (und es sieht sowieso nicht so aus, als würde es tatsächlich funktionieren).

Ich habe versucht, den Batch-Dateinamen in Anführungszeichen zu setzen: cmd.exe "C: \ test.bat", aber das macht auch keinen Unterschied.

Was ist die magische Kombination, um dies zum Laufen zu bringen?

Paul Mrozowski
quelle
Haben Sie den vollständigen Pfad verwendet, als der Fehler "Datei nicht gefunden" angezeigt wurde? Ist der Pfad auf dem ausführenden Server gültig, nicht nur auf Ihrer Workstation? Sind die Pfade in der Batchdatei absolut?
Jon of All Trades
Ja, ich benutze den vollständigen Pfad. Es ist der richtige Pfad auf dem Server, auf dem es ausgeführt wird. Die Batch-Datei ist nichts weiter als ein einfacher Test: echo> C: \ temp \ itworks.txt
Paul Mrozowski

Antworten:

11

Wenn das Gedächtnis mir recht gibt:

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

Anführungszeichen sind erforderlich, wenn der Pfad oder der Dateiname Leerzeichen enthält

SqlACID
quelle
1

Überprüfen Sie auch die Berechtigungen, die für den Job Agent-Dienst verwendet werden. Möglicherweise hat der Benutzer, der den Dienst ausführt, keine Berechtigung zum Anzeigen der Datei.

Viel Glück

Dan OBrien
quelle
0

Vergewissern Sie sich, dass Sie über die Berechtigungen zum Ausführen der Batchdatei auf diesem Laufwerk und in diesem Ordner verfügen.

Vergessen Sie nicht, wenn Sie es manuell ausführen, werden Ihre Anmeldeinformationen verwendet. Wenn es jedoch automatisch von SQL Agent ausgeführt wird, werden die Anmeldeinformationen und Berechtigungen des Agenten verwendet.

Phill H
quelle
0

nur "c:\test.bat"wird den Job machen

Ronald Tims
quelle
1
Hallo, Willkommen auf der Seite. Auch wenn Ihre Antwort nützlich sein kann, ist es in der Regel besser, einige Details anzugeben, warum dies funktioniert, während der Befehl in der Frage dies nicht tut.
Tom V - versuchen Sie topanswers.xyz