¿Cómo ejecuto un archivo por lotes desde un trabajo programado a través del Agente SQL Server


12

Estoy intentando ejecutar un archivo por lotes (Windows) desde un trabajo de agente de SQL Server en SQL Server 2008 R2. En los Pasos del trabajo, he creado un nuevo paso, establezco su tipo en "Sistema operativo (CmdExec)". Inicialmente intenté poner solo el nombre del archivo por lotes en el campo "Comando". Da un error que no puede encontrar el archivo.

Luego probé: cmd.exe c: \ test.bat

Esto comienza, pero nunca se completa (y no parece que realmente esté funcionando de todos modos).

Traté de ajustar el nombre del archivo por lotes entre comillas: cmd.exe "C: \ test.bat" pero eso tampoco hace ninguna diferencia.

¿Cuál es la combinación mágica para que esto funcione?


¿Estaba utilizando la ruta completa cuando recibió el error "archivo no encontrado"? ¿La ruta es válida en el servidor en ejecución, no solo en su estación de trabajo? ¿Son absolutas las rutas dentro del archivo por lotes?
Jon of All Trades

Sí, estoy usando la ruta completa. Es la ruta correcta en el servidor que lo ejecuta. El archivo por lotes no es más que una simple prueba: echo> C: \ temp \ itworks.txt
Paul Mrozowski

Respuestas:


11

Si la memoria me sirve correctamente:

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

Se necesitan comillas si hay espacios en la ruta o el nombre del archivo


1

Además, verifique los permisos utilizados para el Servicio de Agente de Trabajo. Podría ser que el usuario que ejecuta el servicio no tenga permiso para ver el archivo.

Buena suerte


0

Compruebe que tiene permisos para ejecutar el archivo por lotes en esa unidad y ubicación de carpeta.

No olvide que cuando lo ejecuta manualmente se usan sus credenciales, pero cuando se ejecuta automáticamente por el Agente SQL, se usan las credenciales y permisos del agente.


0

solo "c:\test.bat"hará el trabajo


1
Hola, bienvenido al sitio. Si bien su respuesta puede ser útil, generalmente es mejor incluir algunos detalles más sobre por qué esto funcionaría mientras que el comando en la pregunta no lo hace.
Tom V - prueba topanswers.xyz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.