1

Я пытаюсь получить командный файл, который перемещает файлы «.doc» в папку. Хитрость заключается в том, что у меня есть три пользовательские папки с именами Mark, Luke и John, в которые я хочу, чтобы эти файлы пошли. Например, aa.doc находится в папке и перемещает ее в папку меток. Затем, когда появляются следующие файлы aa1.doc, он перемещает их в папку Люка. Следующий файл перемещается в папку John, и этот процесс повторяется, равномерно распределяя файлы среди трех пользовательских папок.

Кто-нибудь знает как это сделать?

2 ответа2

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
)
0

Что-то вроде этого:

@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

Это может потребовать доработки для ваших конкретных потребностей, но это поможет вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .