批处理文件以循环方式将文件移动到目录

批处理文件以循环方式将文件移动到目录

我正在尝试使用批处理文件将“.doc”文件移动到一个文件夹。诀窍是,我有三个名为 Mark、Luke 和 John 的用户文件夹,我希望这些文件进入这些文件夹。例如,aa.doc 在一个文件夹中,它会将其移动到 marks 文件夹。然后,当下一个文件 aa1.doc 进入时,它会将其移动到 luke 的文件夹。下一个文件移动到 John 文件夹,这个过程重复进行,在三个用户文件夹中均匀分配文件

有谁知道如何做到这一点?

答案1

尝试这个:

@echo off &setlocal
SET "target0=Marcella"
SET "target1=Lucca"
SET "target2=Daniella"

FOR %%A IN (*.doc) DO (
    SET /a counter+=1
    SET /a pointer=counter%%3
    SET "file=%%~A"
    SETLOCAL ENABLEDELAYEDEXPANSION
    CALL SET "target=%%target!pointer!%%"
    ECHO MOVE "!file!" "!target!"
    ENDLOCAL
)

答案2

像这样:

@echo off
Rem allow for reusable variables
SETLOCAL ENABLEDELATEDEXPANSION

Set mark=0
Set luke=1
Set david=2

Rem drawing from your example
set prefix=aa

for /f "usebackq tokens=*" %%i in (`dir /b *.doc`) do (
        Rem strips file extension

        set file=%%~ni 

        setfilename=%%i

        Rem extracts numeric substring

        set num=%file:%~prefix%=%

        )

       Rem Divide num by 3 and return remainder

       set mod=(%num%) % 3
       if %mod%==%mark% (move %filename% Mark)
       if %mod%==%luke% (move %filename% Luke) else (move %filename% David)

endlocal
exit /b

这可能需要根据您的具体需求进行调整,但这会让您走上正轨。

相关内容