用于将文件(部分文件名匹配)移动到文件夹的批处理实用程序(部分文件夹名称匹配)

时间:2014-02-10 17:25:03

标签: batch-file

我已经搜索过并且无法找到解决方法。此解决方案需要在Windows计算机上运行。

我根据文本文件创建了一组文件夹,其中包含该文件夹所需的相关信息。

所有文件夹都以这种方式命名:

X1234501__ASFX___FSU-xx-xxx 

我有一系列以这种方式命名的word文档:

X1234501 ASFX 2_10_2014.docx

我需要的是一个批处理实用程序,它将word文档移动到前8个字符相同的相应文件夹中。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果所有Word文档都在一个目录(DOC_PATH)中,并且它们被移动到的所有目录也在一个目录中(DIR_PATH

,则以下内容将起作用
@ECHO OFF

SET /P DOC_PATH="Enter full file path to Word documents."
SET /P DIR_PATH="Enter full file path to directories."

FOR /F "tokens=1,* delims= " %%a IN (
    'DIR /B %DOC_PATH%\*.docx'
) DO (
    FOR /D %%i IN (%DIR_PATH%\%%a*) DO (
        MOVE "%DOC_PATH%\%%a %%b" "%DIR_PATH%\%%i"
    )
)

答案 1 :(得分:0)

假设您已设置所有文件夹:

:start
   @echo off
   setlocal enableDelayedExpansion
   for /f "tokens=*" %%f in ('dir *.docx /b') do (
      set filename=%%f
      set folder8=!filename:~0,8!
      set "targetfolder="
      for /f %%l in ('dir "!folder8!"*.* /a:d /b') do (
         set targetfolder=%%l
      )
   if defined targetfolder move "!filename!" "!targetfolder!"   
   )   
:end