web-dev-qa-db-ja.com

SQL Serverエージェントを介してスケジュールされたジョブからバッチファイルを実行する方法

SQL Server 2008 R2でSQL Serverエージェントジョブ内から(Windows)バッチファイルを実行しようとしています。ジョブステップで、新しいステップを作成し、そのタイプを「オペレーティングシステム(CmdExec)」に設定します。最初は「コマンド」フィールドにバッチファイル名のみを入力しようとしました。ファイルが見つからないというエラーが発生します。

それから私は試しました:cmd.exe c:\ test.bat

これは始まりますが、完了することはありません(実際に動作しているようには見えません)。

バッチファイル名を引用符で囲みました:cmd.exe "C:\ test.bat"でも、違いはありません。

これを機能させる魔法の組み合わせは何ですか?

12
Paul Mrozowski

メモリが正しく機能する場合:

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

パスまたはファイル名にスペースがある場合は引用符が必要です

11
SqlACID

同様に、ジョブエージェントサービスに使用される権限を確認します。サービスを実行しているユーザーに、ファイルを表示する権限がない可能性があります。

幸運を

1
Dan OBrien

"c:\test.bat"だけが仕事をします

0
Ronald Tims

そのドライブとフォルダの場所でバッチファイルを実行する権限があることを確認してください。

手動で実行すると資格情報が使用されますが、SQLエージェントによって自動的に実行されると、エージェントの資格情報と権限が使用されることを忘れないでください。

0
Phill H