免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: mmh
打印 上一主题 下一主题

怎么样为一个目录下的文件全部重命名 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-03-30 16:45 |只看该作者
不好意思~
还是相同的错误
Uncaught exception from user code:
        Rename is failed:No such file or directory
at D:/Documents and Settings/Administrator/workspace/perl/222.pl line 17

论坛徽章:
0
12 [报告]
发表于 2010-03-30 16:54 |只看该作者
本帖最后由 小小稻草人 于 2010-03-30 16:59 编辑

回复 11# mmh


    你好好检查一下你的代码吧。
D:/Documents and Settings/Administrator/workspace/perl/222.pl line 17 --->你是WINDOWS还中UNIX 这是什么路径
注意e:\\perl_test这里是两个'\

论坛徽章:
0
13 [报告]
发表于 2010-03-30 16:59 |只看该作者
我只改了目录的路径!
怪了,我是直接复制你的代码试的。

论坛徽章:
0
14 [报告]
发表于 2010-03-30 16:59 |只看该作者
回复 13# mmh


        你好好检查一下你的代码吧。
D:/Documents and Settings/Administrator/workspace/perl/222.pl line 17 --->你是WINDOWS还中UNIX 这是什么路径
注意e:\\perl_test这里是两个'\

论坛徽章:
0
15 [报告]
发表于 2010-03-30 17:04 |只看该作者
是的代码没有错误
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;

  5. use File::Spec;

  6. use File::Copy;

  7. opendir(DIR,"D:\\ExPress_EB\\UploadTxt") or die "Can't open the current directory:$!\n";
  8. my @file=readdir(DIR);
  9. close DIR;

  10. foreach my $i (@file){
  11.         if ($i =~/(\w+)\(Error\)/){
  12.                 copy ("$i","$1$'") or die "Rename is failed:$!\n";
  13.                
  14.         }
  15. }
复制代码
  1. Uncaught exception from user code:
  2.         Rename is failed:No such file or directory
  3. at D:/Documents and Settings/Administrator/workspace/perl/222.pl line 17
复制代码

论坛徽章:
0
16 [报告]
发表于 2010-03-30 17:06 |只看该作者
本帖最后由 colphenix 于 2010-03-30 17:09 编辑
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use File::Copy;
  4. my @filename_array = glob '*.txt';
  5. foreach my $filename (@filename_array) {
  6.     move "$filename", "" if $filename =~ m/(\(Error\))/;
  7. }
复制代码
奇怪,这行贴成代码看不到$`$'
move "$filename", "$`$'" if $filename =~ m/(\(Error\))/;

论坛徽章:
0
17 [报告]
发表于 2010-03-31 09:28 |只看该作者
谢谢楼上的各位了!

小小稻草人
colphenix

两位的代码都是可以的,是我自己的代码有问题现在以经好了。

论坛徽章:
0
18 [报告]
发表于 2010-04-01 23:37 |只看该作者
回复 7# mmh


    呵呵,有Windows下的sed,记得在cn-dos上见到过~~

论坛徽章:
0
19 [报告]
发表于 2010-04-09 18:01 |只看该作者
回复 1# mmh


    rename.pl

$op = shift or die "Usage: rename expr [files]\n";
chomp (@ARGV = <STDIN>) unless @ARGV;
for(@ARGV) {
$was = $_;
eval $op;
die $@ if $@;
rename ($was, $_) unless $was eq $_;
}

传说是larry写的~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP