Bonjour à tous.
J'ai une question dont je n'arrive pas à trouver une solution.
J'ai un script perl qui compte le nombre de fichier commençant par "Trace" et les affiches sur un fichier excel
Ce que je voudrais savoir c'est si je ne pourrais pas à l’exécution du programme .pl ouvrir la ligne de commande avant l'ouverture du fichier excel pour moi même écrire le répertoire dans lequel je vais appelé les sous - programmes.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57 use warnings; use strict; use File::Find; use Spreadsheet::WriteExcel; my $workbook = Spreadsheet::WriteExcel->new('C:\\Documents and Settings\\test_excel.xls'); # Création du fichier excel my $repertoire_etude = "C:/Log"; # Création des feuilles de calcul du fichier excel my $worksheet = $workbook->add_worksheet("test"); sub parcours_repertoire # Fonction parcours_dir qui récupère les fichiers du répertoire appellé { my ($path) = @_; my @dir_entries = glob("$path/*"); foreach my $entry (@dir_entries) { programme_principal($entry) if -f $entry && $entry =~ m/Trace/; parcours_repertoire($entry) if -d $entry; } } my $nb_fichier; # Initialisation de la variable $nb_fichier sub recherche # Sous programme recherche { if (-f) { ++$nb_fichier if $File::Find::name =~ /Trace/; } } find(\&recherche,$repertoire_etude); $worksheet->write(0,0,"Il y a $nb_fichier fichiers dans le repertoire") ; my $j = 0; sub programme_principal { my $fichier =shift; foreach ($fichier) { $worksheet->write($j+5,0,"$fichier"); $j++; } } parcours_repertoire($repertoire_etude); # Appel de la fonction parcours_dir avec le répertoire que l'on veut analyser en paramètres
En gros lorsque j’exécuterais le programme j'aurais la commande qui s'ouvrirais avec une question "Quel répertoire voulait vous examiné " et lorsque j'écrirais le répertoire et appuyerais sur entrée le fichier excel s'ouvrirais.
Est - ce possible ? Comment réaliser cela ?
Merci beaucoup de votre aide.
Partager