Perl xử lý việc này tốt, một cái gì đó như thế này sẽ đủ:
use warnings;
use strict;
use File::Copy;
my $oldname;
opendir(my $d, ".") or die $!;
while(readdir $d) {
if (-d $_ and $_ ne "." and $_ ne "..")
{
$oldname = $_;
$_ =~ s/\./ /g;
$_ =~ s/(\d{4})/($1)/g;
move($oldname,$_);
}
}
closedir $d;
Chỉ được thử nghiệm ngắn gọn, hãy thoải mái chơi golf / sửa đổi nó! Nó không hoàn hảo bằng mọi cách. Hack nó cùng nhau một cách nhanh chóng;)
Lưu ý: Ở trạng thái hiện tại, nó phải được chạy trong thư mục với các tên thư mục được đọc sai.
C: \ Users \ John \ Desktop \ thư mục> dir
Âm lượng trong ổ C không có nhãn.
Số sê-ri khối là 8888-1666
Thư mục của C: \ Users \ John \ Desktop \ thư mục
29/01/2011 07:14 PM.
29/01/2011 07:14 PM ..
29/01/2011 07:07 PM some.folder.name.2008
29/01/2011 07:07 PM some.folder.name.2009
29/01/2011 07:16 PM 282 ren.pl
1 tệp 282 byte
4 Dir (53) miễn phí 53.349.425.152 byte
C: \ Users \ John \ Desktop \ thư mục> ren.pl
C: \ Users \ John \ Desktop \ thư mục> dir
Âm lượng trong ổ C không có nhãn.
Số sê-ri khối là 8888-1666
Thư mục của C: \ Users \ John \ Desktop \ thư mục
29/01/2011 07:16 PM.
29/01/2011 07:16 PM ..
29/01/2011 07:07 PM một số tên thư mục (2008)
29/01/2011 07:07 PM một số tên thư mục (2009)
29/01/2011 07:16 PM 282 ren.pl
1 tệp 282 byte
4 Dir (53) miễn phí 53.349.425.152 byte