Déplacement fichier - Perl - Programmation
Marsh Posté le 29-01-2015 à 13:34:31
Bonjour,
Je ne connais pas le Perl mais à mon avis, dans le chemin de destination, tu ne dois préciser que le dossier
Code :
|
et non pas le chemin entier avec le fichier. (Avec ou sans slash à la fin.)
Marsh Posté le 29-01-2015 à 13:40:09
Merci slr56 pour ta réponse.
En fait j'ai résolu mon problème avec le code suivant :
Code :
|
Marsh Posté le 29-01-2015 à 16:15:51
Sauf que la solution de slr56 est meilleure.
Ou a la limite
my $fichier = 'D:\temp\toto.txt';
my $destination = 'D:\temp\Archive';
Mais on n'utilise pas de " autour d'un nom de fichier en perl si le nom est constant. C'est une habitude à prendre.
A+,
Marsh Posté le 29-01-2015 à 16:46:32
Ok merci pour l'info.
Cependant est-il possible de déclarer des variables génériques ?
Je m'explique :
Je voudrais déclarer la variable $fichier du genre :
Code :
|
Tout simplement car par exemple le fichier peut-être de la forme toto.AAAA.MM.JJ.txt.
Est-ce que cela est possible en perl svp ?
Marsh Posté le 29-01-2015 à 16:53:32
Il suffit de déclarer la variable comme ci-dessous:
Code :
|
Marsh Posté le 29-01-2015 à 19:54:23
Non, ça marche pas ainsi:
D:\temp\toto*.txt c'est une expression régulière /D:\\temp\\toto.*\.txt/
donc tout dépend ensuite de ta manière de l'utiliser.
glob ça renvoie normalement une liste (qu'on assigne a une variable de liste), alors si tu as plus d'un fichier qui matche ton expression régulière, c'est mal barré, car avec une variable scalaire alors glob va te renvoyer le premier élément de la liste (et des appels suivants a glob sans paramètres renvoient les éléments de la liste, un a un).
Si tu es sur qu'il y a un seul fichier qui matche, ça marche en effet, mais compter la dessus, euh...
A+,
Marsh Posté le 30-01-2015 à 08:55:32
D'accord ! Donc quelle est la manière la plus efficace pour déclarer la variable stp ?
Marsh Posté le 30-01-2015 à 12:14:49
Comme je te l'ai dit, pour savoir si tu as besoin d'une liste (my @fichiers = glob('D:\temp\toto*.txt');) ou d'une regexp (my $fileregexp =qr/D:\\temp\\toto.*\.txt/;) ça dépend de ce que tu vas en faire.
A+,
Marsh Posté le 28-01-2015 à 16:54:11
Bonjour,
J'aurais besoin de déplacer un fichier.
j'ai le petit bout de code ci-dessous qui est censé le faire mais rien ne se passe !
Je suis sur un environnement Windows ! Y a t'il une faute dans ma commande ?
Merci d'avance.