我需要一个批处理文件来将pdf文件移动到现有文件夹

时间:2014-03-02 01:01:51

标签: batch-file directory

我需要移动到现有文件夹的大约4000个pdf文件 pdfs和文件夹都以6个数字开头。我希望批处理能够通过前6个数字识别文件名,并将pdf放在具有相同6个数字的文件夹中。

下划线后面的名称不必仅匹配6个数字,下划线必须与文件夹中的pdf相匹配。
我想制作一个批处理文件,将所有文件/ pdfs自动移动到相应的文件夹中。我不想创建新文件只将pdfs移动到现有文件夹中。

Pdf 123456_ABC Company需要移至文件夹123456_Company ABC

Pdfs位于我桌面上名为DLRDOCS的文件夹中 pdfs需要移动的文件夹位于我桌面上的DLRFLDS

2 个答案:

答案 0 :(得分:0)

在这里,试试这个:

@echo off
setlocal

set "sIn=%userprofile%\desktop\dlrdocs"
set "sOut=%userprofile%\desktop\dlrflds"

for /f "delims=" %%a in ('dir /b /s /a-d "%sIn%\*_*.pdf"') do (
  for /f "tokens=1-4 delims=_. " %%b in ("%%~nxa") do (
    if not exist "%sIn%\%%~b_%%~d %%~c" md "%sOut%\%%~b_%%~d %%~c"
    move /Y "%sIn%\%%~nxa" "%sOut%\%%~b_%%~d %%~c"
  )
)
exit /b

答案 1 :(得分:0)

@echo off
    setlocal enableextensions

    set "source=%cd%\dlrdocs"
    set "target=%cd%\dlrflds"

    for %%a in ("%source%\*_*.pdf"
    ) do for /f "tokens=1 delims=_" %%b in ("%%~na"
    ) do for /d %%c in ("%target%\%%b_*"
    ) do if exist "%%~fa" echo move "%%~fa" "%%~fc"

要从桌面运行,如果没有,请根据需要调整源文件夹和目标文件夹。它只输出控制移动命令。如果输出正确,请在删除echo命令后再次执行