reference_
すべてのディレクトリとサブディレクトリにあるすべての*.bmpファイルの名前の前に文字列()を付けようとしています。初めてsilkスクリプトを実行すると、ディレクトリとサブディレクトリが作成され、各サブディレクトリの下に、各モバイルアプリケーションのシーンショットが.bmp
拡張子付きで保存されます。
自動化されたsilkscriptを2回実行すると、すべてのサブディレクトリに*.bmpファイルが再度作成されます。スクリプトを2回実行する前に、すべての*.bmpの前に文字列を付けたいと思いますreference_
。
たとえばfirst_screen.bmp
、reference_first_screen.bmp
次のようなディレクトリ構造になっています。
C:\Image_Repository\BG_Images\second
...
C:\Image_Repository\BG_Images\sixth
持っているfirst_screen.bmp
とfirst_screen.bmp
ファイルなど...
誰か助けてもらえますか?
すべての画像ファイル名の前に文字列を付けるにはどうすればよいreference_
ですか?
スクリプトを2回実行すると、シルクのPerlスクリプトがサブディレクトリから両方の画像を取得し、両方をピクセルごとに比較します。私は以下のコードで試しています。このタスクを完了する方法を教えてください。
#!/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;
#$lines=@dir;
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;
#$lines=@dire;
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;
}
'+ <'モードでオープンコールを試しましたが、読み取りおよび書き込みモードでコンパイルエラーが発生します。このコードを実行すると、BG_imagesフォルダー内のファイルにプレフィックス付きの文字列が表示されますが、実際にはサブディレクトリ内のファイルは更新されません。