![使用匹配的文件名将文件移动到文件夹](https://linux22.com/image/1601218/%E4%BD%BF%E7%94%A8%E5%8C%B9%E9%85%8D%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E5%B0%86%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我有 doc、docx 和 PDF 文件,其中文件名由一个唯一的 9 位数字和后跟文本组成。
我想将这些文件移动到它们各自的文件夹中,这些文件夹也至少包含唯一的 9 位数字,但可能包含不同的文本。
这些文件夹位于硬盘上的另一个文件夹中,但如果需要,我可以轻松地将文档移动到同一个父文件夹中。文件和文件夹名称是 123456789_Firstname_Lastname.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
}