Problema con xp_cmdshell y las "

22/12/2004 - 11:28 por Salvador Ramos | Informe spam
Hola a todos:

Tengo el siguiente mandato, para compactar una base de datos Access, que
funciona perfectamente desde línea de comandos.
"C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
"F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact

Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el problema
lo tengo en las comillas dobles, pero no logro dar con la solución (no puedo
quitar las comillas dobles porque la ruta contiene espacios).

Podeis indicarme cómo hacerlo ?

master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
Office\OFFICE11\msaccess" "F:\Andamur\Tmp
Importacion\Extranet\ExAndamur.mdb" /compact '

No funciona, me indica que
"C:\Archivos" no se reconoce como un comando externo o externo.
Efectivamente ese no es el comando, ya que lo está truncando por el primer
espacio en blanco que encuentra.

También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
tampoco funciona (en cambio si ejecuto el bat desde el explorador de windows
si que funciona):
xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
En este caso lo estoy probando desde el query analyzer y se me queda el
proceso ejecutandose infefinidamente.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

Preguntas similare

Leer las respuestas

#1 qwalgrande
22/12/2004 - 12:29 | Informe spam
Hola.

Lo primero, disculparme ante las estupideces que mi humilde persona pueda
decirle a un MVP de SQL Server y que para lo único que servirán será para
poner de manifiesto mi ignorancia. En cualquier caso, he probado a realizar
algo parecido a lo que comentas,

exec xp_cmdshell '"C:\Program Files\calc"'

Funciona "perfectamente", es decir, me aparece un proceso calc.exe en el
Task Manager, aunque no veo la calculadora. Y hasta que no mato dicha tarea,
el comando queda ejecutándose (la consulta no finaliza). Y salvo que en tu
caso hayas previsto que el access se cierre de alguna forma, la tarea, la
consulta que lanzas, no finalizará nunca.

Si no pongo las comillas dobles, no funciona ('C:\Program' is not recognized
as an internal or external command,...).

En cualquier caso, ejecutar aplicaciones así, siempre y cuando no esté
totalmente controlado, no sé yo si será la mejor de las ideas, ya que lanzar
una compactación de access puede quedarse colgada y desde sql server no habrá
luego forma de finalizar el proceso, habrá que ir al Task Manager a matarla.

Yo uso habitualmente una compresión usando gzip desde xp_cmdshell y obtengo
resultados satisfactorios. Sin embargo, en el pasado he tenido que lanzar
otras aplicaciones menos simples por métodos parecidos y tarde o temprano
acaban por quedarse pilladas. Y en ese caso puedes llegar a tener un
problema, en un par de ocasiones me vi forzado a reiniciar el servidor, ya
que no había forma de finalizar el proceso. Mi opinión es que si tienes
alguna otra forma de hacerlo, no uses xp_cmdshell, ni el servidor en general
para realizar esta tarea. Si no te queda más remedio, un dts, un job que
permiten lanzar el proceso windows sería mejor opción. xp_cmdshell como
último recurso.

qwalgrande

"Salvador Ramos" wrote:

Hola a todos:

Tengo el siguiente mandato, para compactar una base de datos Access, que
funciona perfectamente desde línea de comandos.
"C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
"F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact

Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el problema
lo tengo en las comillas dobles, pero no logro dar con la solución (no puedo
quitar las comillas dobles porque la ruta contiene espacios).

Podeis indicarme cómo hacerlo ?

master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
Office\OFFICE11\msaccess" "F:\Andamur\Tmp
Importacion\Extranet\ExAndamur.mdb" /compact '

No funciona, me indica que
"C:\Archivos" no se reconoce como un comando externo o externo.
Efectivamente ese no es el comando, ya que lo está truncando por el primer
espacio en blanco que encuentra.

También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
tampoco funciona (en cambio si ejecuto el bat desde el explorador de windows
si que funciona):
xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
En este caso lo estoy probando desde el query analyzer y se me queda el
proceso ejecutandose infefinidamente.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?



Respuesta Responder a este mensaje
#2 ulises
22/12/2004 - 14:57 | Informe spam
Usa comillas para encerrar el nombre largo :

master..xp_cmdshell ' C:\"Archivos de programa"\Microsoft ...

Saludos,
Ulises

Hola a todos:

Tengo el siguiente mandato, para compactar una base de


datos Access, que
funciona perfectamente desde línea de comandos.
"C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
"F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact

Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé


que el problema
lo tengo en las comillas dobles, pero no logro dar con la


solución (no puedo
quitar las comillas dobles porque la ruta contiene espacios).

Podeis indicarme cómo hacerlo ?

master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
Office\OFFICE11\msaccess" "F:\Andamur\Tmp
Importacion\Extranet\ExAndamur.mdb" /compact '

No funciona, me indica que
"C:\Archivos" no se reconoce como un comando externo o


externo.
Efectivamente ese no es el comando, ya que lo está


truncando por el primer
espacio en blanco que encuentra.

También he intentado hacer un bat y ponerlo en una ruta


sin espacios, y
tampoco funciona (en cambio si ejecuto el bat desde el


explorador de windows
si que funciona):
xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
En este caso lo estoy probando desde el query analyzer y


se me queda el
proceso ejecutandose infefinidamente.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?


.

Respuesta Responder a este mensaje
#3 Carlo Sorrel
22/12/2004 - 15:09 | Informe spam
Salvador, yo e utilizado este comando, y la solución al problema que
planteas es ponerle comillas dobles al nombre con espacios 'c:\"Archivos de
programas"\..', con esto deberia funcionar sin problemas...
Saludos.

Atte.,
Carlo Sorrel

"Salvador Ramos" escribió en el
mensaje news:
Hola a todos:

Tengo el siguiente mandato, para compactar una base de datos Access, que
funciona perfectamente desde línea de comandos.
"C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
"F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact

Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el problema
lo tengo en las comillas dobles, pero no logro dar con la solución (no


puedo
quitar las comillas dobles porque la ruta contiene espacios).

Podeis indicarme cómo hacerlo ?

master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
Office\OFFICE11\msaccess" "F:\Andamur\Tmp
Importacion\Extranet\ExAndamur.mdb" /compact '

No funciona, me indica que
"C:\Archivos" no se reconoce como un comando externo o externo.
Efectivamente ese no es el comando, ya que lo está truncando por el primer
espacio en blanco que encuentra.

También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
tampoco funciona (en cambio si ejecuto el bat desde el explorador de


windows
si que funciona):
xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
En este caso lo estoy probando desde el query analyzer y se me queda el
proceso ejecutandose infefinidamente.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?


Respuesta Responder a este mensaje
#4 Gustavo Larriera [MVP]
22/12/2004 - 15:15 | Informe spam
Usa las comillas dobles en los tokens internos al camino:

exec master..xp_cmdshell ' copy c:\"folder de pruebas"\"hola mundo.txt"
c:\"hola mundo 2.txt" '


"Salvador Ramos" wrote in message
news::
Hola a todos:

Tengo el siguiente mandato, para compactar una base de datos Access, que
funciona perfectamente desde línea de comandos.
"C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
"F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact

Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el
problema
lo tengo en las comillas dobles, pero no logro dar con la solución (no
puedo
quitar las comillas dobles porque la ruta contiene espacios).

Podeis indicarme cómo hacerlo ?

master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
Office\OFFICE11\msaccess" "F:\Andamur\Tmp
Importacion\Extranet\ExAndamur.mdb" /compact '

No funciona, me indica que
"C:\Archivos" no se reconoce como un comando externo o externo.
Efectivamente ese no es el comando, ya que lo está truncando por el
primer
espacio en blanco que encuentra.

También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
tampoco funciona (en cambio si ejecuto el bat desde el explorador de
windows
si que funciona):
xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
En este caso lo estoy probando desde el query analyzer y se me queda el
proceso ejecutandose infefinidamente.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?




Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.
Respuesta Responder a este mensaje
#5 Salvador Ramos
22/12/2004 - 16:09 | Informe spam
Muchas gracias a todos

Con vuestras indicaciones he solucionado el problema de las dobles comillas.
Ahora tengo el problema de que no compacta la base de datos y deja
ejecutandose de forma indefinida el proceso msaccess.exe. También deja
pillado el enterprise manager o el query analyzer, que es desde donde lo he
probado.

Voy a leer detenidamente la alternativa propuesta por qwalgrande, y voy
respondiendo en esa parte del hilo.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Gustavo Larriera [MVP]" escribió en
el mensaje news:
Usa las comillas dobles en los tokens internos al camino:

exec master..xp_cmdshell ' copy c:\"folder de pruebas"\"hola mundo.txt"
c:\"hola mundo 2.txt" '


"Salvador Ramos" wrote in message
news::
> Hola a todos:
>
> Tengo el siguiente mandato, para compactar una base de datos Access, que
> funciona perfectamente desde línea de comandos.
> "C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
> "F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact
>
> Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el
> problema
> lo tengo en las comillas dobles, pero no logro dar con la solución (no
> puedo
> quitar las comillas dobles porque la ruta contiene espacios).
>
> Podeis indicarme cómo hacerlo ?
>
> master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
> Office\OFFICE11\msaccess" "F:\Andamur\Tmp
> Importacion\Extranet\ExAndamur.mdb" /compact '
>
> No funciona, me indica que
> "C:\Archivos" no se reconoce como un comando externo o externo.
> Efectivamente ese no es el comando, ya que lo está truncando por el
> primer
> espacio en blanco que encuentra.
>
> También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
> tampoco funciona (en cambio si ejecuto el bat desde el explorador de
> windows
> si que funciona):
> xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
> En este caso lo estoy probando desde el query analyzer y se me queda el
> proceso ejecutandose infefinidamente.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida