我正在尝试使用批处理文件将“.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
这可能需要根据您的具体需求进行调整,但这会让您走上正轨。