Организация файлов по ключевым словам в именах файлов

У меня на компьютере много (то есть, более 10 000) документов, которые я хочу организовать по нескольким категориям на основе их имен файлов. Большинство файлов имеют описательные имена файлов, так что их можно легко классифицировать только по их именам.

Я подумал о создании индекса слов, которые появляются в именах файлов (пока я не знаю, как этого добиться), затем обойдя индекс и выбрав наиболее подходящие слова (это будет сделано вручную), которые станут Названия категорий для моих файлов. Затем я хочу автоматически создавать папки на основе этих имен категорий и перемещать файлы (автоматически) в эти папки. Когда файл принадлежит нескольким категориям, я хочу создать NTFS HardLinks (а не копировать каждый файл несколько раз).

Я использую Windows 7. Знаете ли вы, как мне лучше всего решить эту задачу?

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

1 ответ

Короткий сценарий PowerShell, в котором перечислены все имена файлов, соответствующие "category_name-anyText.anyExtension".:

$dir="Q:\Test";
$categories="Q:\categories.txt";
$cats=@{};

get-childitem $dir -recurse | %{

    $file=$_;
    if(-not $file.PSIsContainer)
    {
        if( $file.BaseName -match "^([a-z0-9]+)[-]+.*$")
        {
            if( -not $cats.ContainsKey($matches[1]))
            {
                $cats.add($matches[1], [int]1);
            }
            else
            {
                $val=$cats.Get_Item($matches[1]) + 1;
                $cats.Set_Item($matches[1], $val);
            }
        }
    }
}

$cats.GetEnumerator() | %{

    echo $_.Key >> $categories;
}

Пример: файлы:

   David_Eddings-The_Mallorean.epub
   Jan_Myrdal-Confessions_of_a_disloyal_european.txt
   George_Orwell-Homage_to_Catalonia.mobi

Приведет к следующим категориям:

   David_Eddings
   Jan_Myrdal
   George_Orwell

Это регулярное выражение, которое соответствует именам файлов: "^([a-z0-9]+)[-]+.*$", Это должно быть скорректировано для соответствия различным категориям.

Другие вопросы по тегам