2015-06-19 141 views
0

我被困在寻找我的问题的答案,所以我使Windows-cmd像程序一样,我的一个功能是重命名文件。如果旧名称/新名称中没有空格,但一切都很好,但只要这些空间不起作用。我一直在寻找如何从旧名称和新名称中删除空格(如果有的话),然后进行重命名并将空白返回,但我不知道如何继续。我一直在阅读关于“修剪”的一些事情,但它没有帮助。这里是我的代码的一部分:从文件名中删除空格

elsif ($fr eq 'ren') { 
     $getmenu =~ s/ren //g; 
     my ($rf,$kb) = split /[ ]/,$getmenu; 
     rename($rf, $kb) || die "Error\n"; 
     print "\n>$rf has been renamed as $kb\n"; 
    } 

回答

0

由于空格字符是一个问题,我想:

  1. 有占位符代替他们(像一个连字符,管道,或@)
  2. 文件重命名为
  3. 替换占位符用空格符号再次

这个问题表明该怎么做: Replace whitespace with hyphen in Perl

+0

耶稣多数民众赞成在逻辑上,我没有想过它 - _-谢谢你 – alexeim

1

您使用空格来指示文件名的开始和结束,所以不可能是在名称的任何空格。这就是为什么shell使用引用和转义机制。您需要将这些引入到您的命令语言中。

+0

我会看着它谢谢你 – alexeim