Termux脚本工具 批量修改视频文件扩展名
发表于 : 2022年12月16日 15:35
作用,批量给当前目录下(包括子目录)的视频文件扩展名加下划线,避免相册中出现这些"蜜汁"视频的预览图
toggle.pl
调用:
perl toggle.pl
代码: 全选
use utf8;
use Encode;
use Modern::Perl;
use File::Find;
STDOUT->autoflush(1);
my @original;
my @changed;
my $exts = qr/(mp4|avi|ts|rmvb|wmv|mkv)/i;
find( { wanted => closure->( $exts, \@original, \@changed ) }, "./" );
# 只要有一个未处理格式的文件,先做格式伪装处理
if ( $#original >= 0 )
{
say "Append underline to the file extension";
for my $f ( @original )
{
rename $f, $f."_";
say $f ."_";
}
}
else
{
# 切换回原来的格式
say "Remove underline for the file extension";
for my $f ( @changed )
{
my $newname = $f;
$newname =~ s/_$//;
rename $f, $newname;
say $newname;
}
}
sub closure
{
my ( $filter, $orig, $changed ) = @_;
return
sub {
if ( $File::Find::name =~ /${filter}$/ )
{
push @$orig, $File::Find::name;
}
elsif ( $File::Find::name =~ /${filter}_$/ )
{
push @$changed, $File::Find::name;
}
}
}
sub gbk { encode('gbk', $_[0]) }
sub utf8 { encode('utf8', $_[0]) }
sub u2gbk { encode('gbk', decode('utf8', $_[0])) }
sub uni { decode('utf8', $_[0]) }