Переместить файлы в папку, используя соответствующее имя файла

Переместить файлы в папку, используя соответствующее имя файла

У меня есть файлы doc, docx и PDF, имена которых состоят из уникального 9-значного номера, за которым следует текст.

Я хочу переместить эти файлы в соответствующие папки, которые также содержат как минимум уникальный 9-значный номер, но могут иметь другой текст.

Эти папки находятся в другой папке на жестком диске, но я могу легко переместить документы в ту же родительскую папку, если это необходимо. Имена файлов и папок представляют собой комбинацию 123456789_Имя_Фамилия.docx. Вместо подчеркиваний могут быть пробелы, запятые или вообще не быть пробелов. Однако будет точно известно, что имя файла или папки начинается с 9 цифр.

У меня установлены Python, Hazel и Directory Opus, и я могу установить что угодно еще, если нужно, чтобы этот процесс заработал. Там тысячи файлов, поэтому я был бы очень признателен за решение.

решение1

Это не служба написания скриптов, но этот (непроверенный) PowerShell должен помочь вам начать:

$DestParent = 'C:\NumberedFolders'
Get-ChildItem *.txt, *.pdf | %{
   $ID = $_.BaseName.Substring(0,8)
   $Dest = (Get-Item "$destparent\$ID*").FullName
   Move-Item -Path $_.FullName -Destination $Dest
}

Получить-ChildItem

ForEach-Объект

Метод String.Substring

Получить-элемент

Переместить элемент

Связанный контент