Autor |
Mensaje |
pittusa
Técnico Programador
Registrado: Marzo 2010
Mensajes: 157
Edad: 53 Ubicación: Barcelona
|
Copiar Directorio Completo En Gambas Con Shell
Hola.
Estoy intentando copiar el contenido de un directorio en otro directorio con shell.
Según he leído se hace así:
SHELL "cp -R " & User.Home & "/Facturación " & User.home & "/Copias Facturación"
quiero copiar todo el contenido del directorio facturación en el directorio Copias de facturación pero no copia nada.
que hago mal?
|
#1 Lunes, 15 Noviembre 2010, 19:46 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Copiar Directorio Completo En Gambas Con Shell
Intentalo asi:
cadena="cp -R " & User.Home & "/Facturacion" & User.home & "/Copias_Facturacion"
Shell cadena
Nota:
Ten cuidado con el acento "ó", puede darte problemas.... (cambialo a sin acento..., a lo mejor ese es el problema) (Facturacion")
Y ademas con es espacio, ponle un guion bajo "_" a "Copias_Facturacion"
|
#2 Lunes, 15 Noviembre 2010, 19:52 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Copiar Directorio Completo En Gambas Con Shell
Hola
Te sugiero que además de copiar los comprimas.
shell "tar -czf " & user.home "/Copias_facturacion/Facturas_$(date +\"%d-%m-%y\")" & user.home & "/Facturacion"
Eso te comprime el directorio Facturacion y crea un archivo con lo comprimido en Copias_Facturacion. EL nombre del archivo será Facturas_fecha.tar.gz. La fecha estaría en formato dia-mes-año.
Y variación sobre esto para comprimir serían
shell "tar -cvzf " & user.home "/Copias_facturacion/Facturas_$(date +\"d-%m-%y\")" & user.home & "/Facturacion"
Así te queda en Salida la lista de ficheros que has comprimido por si los quieres para un log por ejemplo.
Para consultar lo que tienes allí comprimido sería ejecutar el comando
shell "tar -tzf " & archivo to salida
Que deja en el string salida los archivos que tienes allí comprimidos
Y para desempaquetarlo sería
shell "tar -C " & user.home & "/Facturacion -xzf " & archivo
Eso descomprime el archivo que le digas y te lo deja en Facturacion. Opcionalmente y para documentar log puedes obtener la lista de ficheros que descomprimes
shell "tar -C " & user.home & "/Facturacion -xvzf " & archivo to salida
En salida tienes la lista de ficheros que has descomprimido
última edición por soplo el Lunes, 15 Noviembre 2010, 21:49; editado 4 veces
|
#3 Lunes, 15 Noviembre 2010, 20:29 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Copiar Directorio Completo En Gambas Con Shell
Soplo:
Has copiado el mismo comando...:
Citar: Te sugiero que además de copiar los comprimas.
shell "tar -czf " & user.home "/Copias_facturacion/Facturas_" & $(date +"%d-%m-%y") & user.home & "/Facturacion "
Eso te comprime el directorio Facturacion y crea un archivo con lo comprimido en Copias_Facturacion. EL nombre del archivo será Facturas_fecha.tar.gz. La fecha estaría en formato dia-mes-año.
Y variación sobre esto para comprimir serían
shell "tar -czf " & user.home "/Copias_facturacion/Facturas_" & $(date +"%m-%d-%y") & user.home & "/Facturacion"
Así te queda en Salida la lista de ficheros que has comprimido por si los quieres para un log por ejemplo.
|
#4 Lunes, 15 Noviembre 2010, 20:45 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Copiar Directorio Completo En Gambas Con Shell
ah si. perdón.
Hice un copy paste y se me olvidó poner la V.
Ya lo corrijo.
|
#5 Lunes, 15 Noviembre 2010, 20:58 |
|
|
pittusa
Técnico Programador
Registrado: Marzo 2010
Mensajes: 157
Edad: 53 Ubicación: Barcelona
|
Re: Copiar Directorio Completo En Gambas Con Shell
Gracias!
Pero.... lo de jsbsan no me funciona.
Pero he descubierto que funciona si me sitúo en el directorio raíz.
haciendo esto:
SHELL "cd " & User.Home & ""
SHELL "cp -R Facturacion Copias_Facturacion"
Tiene razón sobre lo del guion, si no lo pongo no funciona.
Yo creía que se podía poner la ruta completa en el comando cp, pero parece que no.
todo un lujo lo de comprimir, una pasada! funciona perfecto.
gracias por todo.
|
#6 Lunes, 15 Noviembre 2010, 22:03 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Copiar Directorio Completo En Gambas Con Shell
Pues no se por que ja ja ja. Lo he probado y a mi no me funciona aunque no veo la razón. Los comandos tar son correctos así que creo que no me funciona bien lo de meter una comilla en un string. Lo hago con \" pero creo que es eso lo que me falla.
El sentido común me dice que está bien lo escrito.
En cualquier caso y para rematar dado que en algunos casos he dejado un string salida con los ficheros comprimidos indicar que por ejemplo para meter todo eso en un list valdría con
listbox.list=split(salida"\\n")
y así, al hacer el backup puedes tener un informe en pantalla de lo que has comprimido (o consultar lo que hay en un archivo comprimido).
Respecto a lo otro si que se puede poner ruta completa en el cp.
je je je
última edición por soplo el Lunes, 15 Noviembre 2010, 22:16; editado 1 vez
|
#7 Lunes, 15 Noviembre 2010, 22:14 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 50 Ubicación: dos hermanas, sevilla
|
Re: Copiar Directorio Completo En Gambas Con Shell
pittusa:
Citar: Yo creía que se podía poner la ruta completa en el comando cp, pero parece que no.
Realmente se puede poner nombres con espacios "Copias Facturacion" pero lo tienes que poner asi "Copias\ Facturacion"
O sea sustituyes el espacio " " por barra inclinada y espacio "\ " , entonces si puede usar el nombre "Copias Facturacion"
Con los acentos debe de pasar algo parecido, pero no se como se soluciona....
Saludos
|
#8 Martes, 16 Noviembre 2010, 11:17 |
|
|
|