J'essaie de préfixer une chaîne (reference_
) aux noms de tous les fichiers * .bmp dans tous les répertoires ainsi que les sous-répertoires. La première fois que nous exécuterons le script en soie, il créera des répertoires ainsi que des sous-répertoires, et sous chaque sous-répertoire, il stockera le sceenshot de chaque application mobile avec l'extension .bmp
.Comment puis-je ajouter un préfixe à tous les noms de fichiers dans un répertoire?
Lorsque j'exécute le silboxcript automatisé pour la deuxième fois, il crée de nouveau les fichiers * .bmp dans tous les sous-répertoires. Avant d'exécuter le script pour la deuxième fois, je veux préfixer tous les * .bmp avec une chaîne reference_
.
Par exemple first_screen.bmp
-reference_first_screen.bmp
, J'ai la structure de répertoire comme ci-dessous:
C:\Image_Repository\BG_Images\second
...
C:\Image_Repository\BG_Images\sixth
ayant first_screen.bmp
et fichiers, etc ... first_screen.bmp
Quelqu'un pourrait-il me aider?
Comment puis-je préfixer tous les noms de fichiers d'image avec reference_
chaîne? Lorsque j'exécute le script pour la deuxième fois, le script Perl en soie prend les deux images du sous-répertoire et les compare pixel par pixel. J'essaye avec le code ci-dessous. Pourriez-vous me guider comment puis-je procéder pour terminer cette tâche?
#!/usr/bin/perl -w
&one;
&two;
sub one {
use Cwd;
my $dir ="C:\\Image_Repository";
#print "$dir\n";
opendir(DIR,"+<$dir") or "die $!\n";
my @dir = readdir DIR;
#[email protected];
delete $dir[-1];
print "$lines\n";
foreach my $item (@dir)
{
print "$item\n";
}
closedir DIR;
}
sub two {
use Cwd;
my $dir1 ="C:\\Image_Repository\\BG_Images";
#print "$dir1\n";
opendir(D,"+<$dir1") or "die $!\n";
my @dire = readdir D;
#[email protected];
delete $dire[-1];
#print "$lines\n";
foreach my $item (@dire)
{
#print "$item\n";
$dir2="C:\\Image_Repository\\BG_Images\\$item";
print $dir2;
opendir(D1,"+<$dir2") or die " $!\n";
my @files=readdir D1;
#print "@files\n";
foreach $one (@files)
{
$one="reference_".$one;
print "$one\n";
#rename $one,Reference_.$one;
}
}
closedir DIR;
}
J'ai essayé appel ouvert avec le mode « + < » mais je reçois erreur de compilation pour le mode de lecture et d'écriture. Lorsque j'exécute ce code, il affiche les fichiers dans le dossier BG_images avec la chaîne préfixée, mais en fait il ne met pas à jour les fichiers dans les sous-répertoires.
Je n'arrive pas à comprendre ce que vous demandez ici. Votre texte dit une chose mais votre code montre autre chose. –