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

jesus thats так логично, и я не думал об этом -_- спасибо – alexeim

1

Вы можете использовать пробел, чтобы указать, где имена файлов начинаются и заканчиваются, так что не может быть никаких пробелов в именах. Вот почему в оболочках используются механизмы цитирования и эвакуации. Вам нужно ввести их в свой командный язык.

+0

Я загляну в него спасибо – alexeim