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

时间:2015-02-20 02:49:58

标签: windows batch-file

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

我使用保存在C:\ Tempfolder中的大量文档(.pdf,.doc,.xls)。一旦我完成编辑,我用9位数字保存文件名,例如(305123123.pdf或306123123.pdf或.doc)

我希望创建一个批处理文件,它将自动移动以...开头的文件 305到C:\ Users \ Omer \ Documents \ aaCompany或if 306到C:\ Users \ Omer \ Documents \ bbCompany

当我决定处理时,我可以在文件夹中包含超过200个文件。

我也很好奇批处理文件是否可以监视C:\ Tempfolder并移动文件305或306而不执行它

非常感谢您的帮助 我希望我提供了足够的信息,看看这是否可行。

1 个答案:

答案 0 :(得分:2)

你可以做这样的事情:

@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