2015-06-19 127 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