📄 rename.pl
字号:
#!/usr/bin/perl -w
#
use strict;
use File::Find;
my @args = @ARGV;
print "Visual Studio Project Renamer v0.5 - Use with care!\n";
print "Make backups before you use this program.\n";
print "Do a 'Make Clean' on your original project before use.\n";
print "Do a 'Rebuild All' on your renamed project.\n";
print "By Niek Albers (nieka\@daansystems.com)\n\n";
if ( scalar(@args) != 3 )
{
print "Usage: vsrename <oldname> <newname> <dir>\n\n";
exit;
}
my $oldname = $args[0];
my $newname = $args[1];
my $dir = $args[2];
print "Here we go:\n";
if ( $dir =~ m/$oldname/i )
{
print "It seems that the main project directory still has the old name,\nlet\'s rename it...\n";
my $newdirname = $dir;
$newdirname =~ s/$oldname/$newname/gi;
print "Renaming directory: $dir -> $newdirname\n";
rename( $dir, $newdirname ) || die "renaming failed: $!\n";
$dir = $newdirname;
}
find( { wanted => \&renamer, no_chdir => 1 }, $dir );
print "Finished!\n";
sub renamer
{
my $filename = $File::Find::name;
return if ( $filename eq '.' );
return if ( -d $filename );
if ( -T $filename )
{
replaceinfile($filename);
}
else
{
print "NOT replacing in binary file: $filename\n";
}
renamefile($filename);
}
sub replaceinfile
{
my $filename = shift;
print "Replacing in file: $filename\n";
open( FILE, $filename );
binmode(FILE);
my @lines = <FILE>;
close(FILE);
foreach my $line (@lines)
{
$line =~ s/$oldname/$newname/gi;
}
open( FILE, ">$filename" );
binmode(FILE);
foreach my $line (@lines)
{
print FILE $line;
}
close(FILE);
}
sub renamefile
{
my $filename = shift;
my $newfilename = $filename;
$newfilename =~ s{/(.*?)$oldname}{/$1$newname}gi;
if ( $filename ne $newfilename )
{
print "Renaming file: $filename -> $newfilename\n";
rename( $filename, $newfilename ) || warn "renaming failed: $!\n";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -