Bon, avant que l'on dise que j'ai fumé la moquette, ou que j'abuse des mojitos au boulot, voici ce que me donne une commande DIR sous XP :
Maintenant le programme suivant :D:\PDF2005\SOURCE>dir
Le volume dans le lecteur D s'appelle ACERDATA
Le numéro de série du volume est 1B2B-16F1
Répertoire de D:\PDF2005\SOURCE
17/02/2006 17:04 <REP> .
17/02/2006 17:04 <REP> ..
17/02/2006 17:01 0 Nouveau Document texte.txt
17/02/2006 17:04 <REP> ST6809
17/02/2006 17:04 <REP> ST6799
17/02/2006 17:04 <REP> ST6747
17/02/2006 17:04 <REP> ST6736
17/02/2006 17:04 <REP> ST6728
17/02/2006 17:04 <REP> ST6087
17/02/2006 17:04 <REP> ST5887
17/02/2006 17:04 <REP> ST5774
17/02/2006 17:04 <REP> ST5773
17/02/2006 17:04 <REP> ST5733
17/02/2006 17:04 <REP> ST5624
17/02/2006 17:04 <REP> ST5619
17/02/2006 17:04 <REP> ST5605
17/02/2006 17:04 <REP> ST5575
17/02/2006 17:04 <REP> ST5557
17/02/2006 17:04 <REP> ST5425
17/02/2006 17:04 <REP> ST5408
17/02/2006 17:04 <REP> SO3938
1 fichier(s) 0 octets
20 Rép(s) 3 012 067 328 octets libres
D:\PDF2005\SOURCE>
et surtout sa sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 #!/usr/bin/perl ##################################################################################### # Renommage en masse des fichiers PDF ##################################################################################### use strict; #vérifie que toutes les variables sont bien déclarées avec my use Carp; #Recherche les erreurs de syntaxe dans le programme use warnings; # use utf8; use Spreadsheet::WriteExcel; #Un module bien utile pour écrire un fichier Excel my $dossier="D:\\PDF2005\\SOURCE"; # répertoire de travail my @fichiers; #liste contenant ce qu'il y a dans le rép my $contenu; # sert à lister le contenu de la liste précédente print "Listage du contenu du répertoire $dossier\n"; # ouverture du rép, ou message d'erreur opendir DIR, $dossier or die "$dossier n'existe pas !!\n"; # transfert du contenu du rép dans la liste @fichiers = readdir DIR; # boucle pour tester si rép ou fichier foreach $contenu (@fichiers) { #print "Contenu : $contenu\n"; if (-f $contenu) { print "Fichier \: $contenu\n";} # si fichier action elsif (-d $contenu) { print "Répertoire : $contenu \n"; } # sinon si répertoire, action elsif (-l $contenu) { print "lien : $contenu \n"; } elsif (-S $contenu) { print "socket : $contenu \n"; } elsif (-b $contenu) { print "block : $contenu \n"; } elsif (-p $contenu) { print "tube : $contenu \n"; } elsif (-c $contenu) { print "spéc : $contenu \n"; } } # fin foreach parcourant la liste $fichiers # fermeture du répertoire close DIR;
C'est à devenir fou !! Si je décommente print "Contenu : $contenu\n"; j'ai bien tout le contenu qui s'affiche, mais rien en répertoire ou en fichierD:\PDF2005>renommer.pl
Listage du contenu du rÚpertoire D:\PDF2005\SOURCE
RÚpertoire : .
RÚpertoire : ..![]()
![]()
![]()
En plus le premier qui dit que le code est mauvais, en fait c'est un copier/coller de ce qu'il y a dans la FAQ![]()
Bref, si quelqu'un y comprend quelque chose ... qu'il m'envoie des signaux de fumée !
Usti
Partager