• Publicidad

Copiar o mover ficheros de una carpeta a otra

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

Copiar o mover ficheros de una carpeta a otra

Notapor efren.rojas » 2006-10-11 08:32 @397

Buen día... otro problema de novato....

En mi programa necesito que el usuario ingrese 6 caracteres para crear un directorio. Más adelante en el programa se genera un fichero y lo coloca en esa carpeta creada.

Esto es lo que tengo
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print " \f \a Especifique Cliente ( 6 Caracteres ) : \ t"
$cliente=<STDIN>;chop($cliente);
mkdir("$cliente",0755) || die "No se puede crear :$!";
#***En esta linea se genera el fichero y se guarda en X carpeta
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Quisiera copiar el fichero a la carpeta $cliente. He intentado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system('copy fichero.txt  c:\$cliente '); #..pero no reconoce la variable ..
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

:(

Y también quisiera saber cómo restringir al usuario para que sólo ingrese 6 caracteres en la variable $cliente...

De antemano muchas gracias
.·´¯`·.·Efren·.·´¯`·.
efren.rojas
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2006-10-10 11:50 @534
Ubicación: Gdl, Jaliso Mexico

Publicidad

Notapor explorer » 2006-10-11 09:58 @457

No te reconoce la variable $cliente porque tienes todo entrecomillado simple:
Código: Seleccionar todo
'copy fichero.txt c:\$cliente'

Entonces, deberías entrecomillarlo doble:
Código: Seleccionar todo
"copy fichero.txt c:\$cliente"

pero como estás en Windows (a quien se le ocurre ;-)), deberás tener cuidado con los back-slash:
Código: Seleccionar todo
"copy fichero.txt c:\\$cliente"
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 explorer » 2006-10-11 10:01 @459

Para restringir la variable a 6 caracteres, puedes usar la función length, y si no tiene 6 caracteres, repetir la petición.
Última edición por explorer el 2006-10-12 06:52 @327, editado 1 vez en total
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 kidd » 2006-10-11 10:13 @467

Hola:

No te recomiendo que hagas la copia con system(), mejor usa el módulo File::Copy:


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

copy("fichero.txt", "c:\\$cliente");
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 efren.rojas » 2006-10-11 12:19 @554

Kidd, Explorer..

Muchas gracias ya lo logré... :D. El programa lo estoy haciendo desde Linux Red Hat, pero tiene que correr en MS-DOS.


Salu2.
.·´¯`·.·Efren·.·´¯`·.
efren.rojas
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2006-10-10 11:50 @534
Ubicación: Gdl, Jaliso Mexico

Notapor creating021 » 2006-10-11 20:03 @877

:twisted:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/env perl
use strict;
use warnings;
use File::Copy;
m $lugar = "X_lugar";
my $path = "/$lugar";
if($^O =~ /MSWin(32|64)/){
  $path = "c:\\$lugar";
}
copy("archivo", $path);
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Tanto para GNU/Linux como para Windows, BeOS, AIX, HP-UX, Tru64, *BSD, Darwin/OS X, UNIX & UNIX-like :lol:
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 8 invitados

cron