• Publicidad

Copiar archivos

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Copiar archivos

Notapor joss » 2007-09-10 13:07 @588

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use File::Copy;

$org='virus.pl';
@dest=('C:\config.pl','C:\ter.pl');

for ($i=0;$i<1;$i++)
{
copy( $org, $dest[i] ) or die("Fallo la copia");
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


El problema es que solo me lo copia a la primera ruta y con la segunda no hace nada.
joss
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2007-09-10 13:04 @586

Publicidad

Notapor explorer » 2007-09-10 13:16 @594

Bienvenido a los foros de Perl en Español, joss.

Es
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
copy( $org, $dest[$i] ) or die("Fallo la copia");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


(faltaba un '$')

Y en for, hay que poner un '<=' en lugar de un '<', ya que queremos que el bucle se ejecute dos veces.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor joss » 2007-09-10 13:42 @612

Te lo agradezco hermano.
Creo que voy a quedarme un buen tiempo en este foro.

gracias de nuevo.
joss
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2007-09-10 13:04 @586

Notapor joss » 2007-09-11 06:38 @318

Tengo un nuevo problema al copiar:


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$name=Win32::LoginName(); #Obtenemos el nombre del sistema.

$org='C:\Documents and Settings\' . $name . '\Cookies\index.dat';
$dest='
C:\Config01\Cookies\index.dat';

copy( $org, $dest); #Copiamos las Cookies al directorio
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La cuestión es que me da un error y no sé a qué se debe.
joss
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2007-09-10 13:04 @586

Notapor kidd » 2007-09-11 09:08 @422

Hola,

Cuando quieres usar comillas sencillas dentro de un string delimitado con comillas sencillas tienes que escaparlas con el backslash (\). El error te lo tira por la siguiente línea:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$org = 'C:\Documents and Settings\' . $name . '\Cookies\index.dat';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Esto es debido a que al final de Settings tienes un backslash seguido de una comilla, por lo que Perl piensa que la estás escapando y la toma literal y no como final de la cadena, para corregir esto debes de escapar el backslash:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$org = 'C:\Documents and Settings\\' . $name . '\Cookies\index.dat';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor joss » 2007-09-11 10:32 @481

Te lo agradezco, me funcionó.

(y)
joss
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2007-09-10 13:04 @586

Notapor explorer » 2007-09-11 11:19 @513

Otra forma es usar el '/' como separador de niveles de directorio, y usar las dobles comillas para hacer la interpolación de la variable:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$org = "C:/Documents and Settings/$name/Cookies/index.dat";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Perl ya sabe en qué sistema operativo estamos y se encargará de darle la vuelta a los 'slash'. Y las dobles comillas nos junta tanto el texto fijo como el contenido de las variables.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor joss » 2007-09-11 12:58 @582

Gracias por la alternativa explorer. Pero tengo otra pregunta.
Me gustaría saber como puedo copiar todos los archivos que se encuentran en un directorio a otro.
joss
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2007-09-10 13:04 @586

Notapor explorer » 2007-09-11 13:42 @612

Pues... hay algunos hilos que lo han comentado ya...

Una forma de hacerlo es:
* Abrir el directorio origen, con opendir()
* Hacer un bucle por todos los ficheros que readdir() nos devuelve
* Por cada uno de ellos, hacemos un copy() (función importada desde el módulo File::Copy) al directorio destino.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor joss » 2007-09-11 14:07 @630

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
opendir(HISTORIAL, 'C:\Documents and Settings\\' . $name . '\Configuración local\Historial');

readdir(HISTORIAL);

$org = 'C:\Documents and Settings\\' . $name . '\Configuración local\Historial';

$dest = 'C:\Config01\Historial';

for ($i=0;$i<readdir;$i++)
{

copy ($org[$i] , $dest);

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Creo que está bastante mal :( .
joss
Perlero nuevo
Perlero nuevo
 
Mensajes: 36
Registrado: 2007-09-10 13:04 @586

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 34 invitados