Как создать новые папки и поместить файл на него

Для соответствия критериям "coverflow" как мягкий, я должен создать определенную папку (названный "name_of_the_film") для каждого film.avi и cover.jpg, который я имею в своем пленочном каталоге:

Сегодня:

d:/film/starwars.avi, 
d:/film/starwars2.avi
d:/film/starwars.jpg
d::film/starwars2.jpg

Завтра:

d:/film/starwars
d:/film/starwars/starwars.avi
d:/film/starwars/starwars.jpg 
d:/film/starwars2
d:/film/starwars2/starwars2.avi
d:/film/starwars2/starwars2.jpg 

Действительно ли возможно сделать это автоматически?

0
задан 22.07.2014, 23:22

2 ответа

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

use File::Copy;

my $baseDir = "D:/film/";

opendir my $dir, $baseDir or die "Cannot open directory: $!";
my @files = readdir $dir;

foreach my $file (@files)
{
  $fileName = $1 if ($file =~ /^(.*)\.[^\.]+$/i);
  mkdir("$baseDir/$fileName") unless (-d "$baseDir/$fileName");
  move("$baseDir/$file", "$baseDir/$fileName/$file");
}

Принятию Вас установили жемчуг, сохраняет этот сценарий как CreateMovieFolders.pl и затем работает perl CreateMovieFolders.pl от командной строки.

3
ответ дан 24.11.2019, 04:45

Можно сделать это со сценарием пакетной обработки.

Посмотрите здесь для списка способов, которыми можно исказить для переменных цикла.

0
ответ дан 24.11.2019, 04:45

Теги

Похожие вопросы