根据文件名将文件移动到文件夹

Move files to folders based on file name

我是批处理文件的新手,虽然已经彻底搜索并找到了类似但未涵盖我需要的主题。

我处理许多保存在 C:\Tempfolder 中的文档(.pdf、.doc、.xls)。完成编辑后,我用 9 位数字保存文件名,例如(305123123.pdf 或 306123123.pdf 或 .doc)

我想创建一个批处理文件,它将自动移动以 305 到 C:\Users\Omer\Documents\aaCompany 或者如果 306 到 C:\Users\Omer\Documents\bbCompany

当我决定处理时,我可以在任何时候在文件夹中拥有超过 200 个文件。

我也很好奇这个批处理文件能不能监控C:\Tempfolder,不执行就移动文件305或306

非常感谢对此的帮助。
我希望我已经提供了足够的信息来查看这是否可行。

你可以做这样的事情:

@Echo off &cls

::The Input Folder
set $Dossier="C:\Tempfolder"

::The Output Folders
set $Out305="C:\Users\Omer\Documents\aaCompany"
set $Out306="C:\Users\Omer\Documents\bbCompany"

::The extensions to wait
set "$Format=*.pdf,*.xls,*.doc"

setlocal enabledelayedexpansion
:Boucle
cls&echo Waiting for file ...
for /f %%a in ('dir /b/a-d %$Dossier%\%$Format% 2^>nul') do (
 set "$Fichier=%%a"
 echo Treating -^> %%a
 if "!$Fichier:~0,3!"=="305" move "%%~nxa" %$Out305%
 if "!$Fichier:~0,3!"=="306" move "%%~nxa" %$Out306%
)

::Waiting ~5 secondes
ping localhost -n 6 >nul

::Return to the loop
goto:Boucle