找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16799|回复: 0

[原创代码] Perl对剪贴板文件批量重命名

[复制链接]
发表于 2014-8-23 19:19:40 | 显示全部楼层 |阅读模式
环境, Active Perl for Win32

  执行脚本开始循环读取剪切板待命,这时选中一批文件,然后Control+C ,即可实现对文件批量按序号命名。
默认是001 002 003 + .扩展名    如果使用命令行带参数调用,则用第一个参数作为前缀,
比如
───────────┐
Terminal>rn.pl PIC-   │
───────────┘

则对读取到的文件列表命名为 PIC-编号.扩展名 的形式 还有很多可以完善的地方。执行后生成一个:repair_fname.pl
可以用于恢复最近一次修改的文件名。
  1. use strict;
  2. use Encode;
  3. use Win32::Clipboard;
  4. use File::Basename qw/dirname basename/;
  5. use IO::Handle;
  6. use Time::HiRes 'sleep';
  7. STDOUT->autoflush(1);

  8. my $clip;
  9. our @files;
  10. $clip = Win32::Clipboard();

  11. $clip->Empty();
  12. while (scalar(@files) <= 1) {
  13.     @files = $clip->GetFiles();
  14.     print ".";
  15.     sleep 0.5;
  16. }
  17. print "Got it! \n";
  18. &deal();

  19. sub deal {
  20.     open WRT, ">:raw", dirname(__FILE__)."\\repair_fname.pl" or die "WHAT? $!";
  21.     our @files;
  22.     my $i;
  23.     my $path_and_name;
  24.     my $left = "";
  25.     $left = shift @ARGV if (defined $ARGV[0]);
  26.     $i = 0;
  27.     foreach (@files) {
  28.         if (! -e $_) {
  29.             print "File not exists!\n";
  30.             last;
  31.         }
  32.         $i++;
  33.         /\.(.{1,3})$/;
  34.         $path_and_name = sprintf(
  35.                 "%s\\%s%03d.%s",
  36.                 dirname($_), $left, $i, $1
  37.             );
  38.         if (-e $path_and_name) {
  39.             print "WARNNING: The same file name does exists!\n";
  40.             last;
  41.         }

  42.         print WRT "rename(\'$path_and_name\', \'$_\');" . "\r\n";
  43.         print basename($_), " => ", basename($path_and_name) ,"\n";
  44.         rename ($_, $path_and_name) or warn "$!";
  45.     }
  46.     close WRT;
  47. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:09 , Processed in 0.016407 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表