Пакетное перемещение файлов из одной папки в несколько папок по маске файла

у меня есть папка с более чем ста тысячами (100 000+) pdf-файлов, созданных сценарием, которые необходимо переместить в несколько папок на основе имени файла. Все файлы pdf имеют следующие имена:YY-nnnnn.pdf где YY-год, а nnnnn-последовательность файлов в течение года, например:

00-00001.pdf
00-00002.pdf
00-00003.pdf

каждый год содержит около 25 000 файлов. Я генерировал файлы в течение четырех лет, у меня все еще есть 6 лет PDF-файлов, которые будут созданы.

мне нужно переместить эти файлы на сервер. Сервер имеет следующую структуру папок:

D:.
├───00-00000
├───00-01000
├───00-02000
├───00-03000
├───00-04000
├───00-05000
├───00-06000
├───00-07000
├───00-08000
├───00-09000
├───00-10000
├───00-11000

каждый год может иметь до YY-25000 папки. Файлы должны идти каждый в свою собственную папку на основе первых пяти символов, как это:

├───00-00000
│       00-00001.pdf
│       00-00002.pdf
│       00-00003.pdf
│       00-00004.pdf
...
│       00-00997.pdf
│       00-00998.pdf
│       00-00999.pdf
│       
├───00-01000
│       00-01000.pdf
│       00-01001.pdf
│       00-01002.pdf

Я думал об использовании RoboCopy утилита, но не может понять, как правильно написать сценарий. Возможно, потребуется небольшой скрипт.

1
задан cha
06.04.2023 22:03 Количество просмотров материала 3485
Распечатать страницу

1 ответ

найдено решение на основе этой вопрос. Пакетный файл для перемещения файлов выглядит так:

@echo off
    for /f "tokens=*" %%F in ('dir/b/a-d d:\temp\pdfprints\*.pdf') do call :sub1 %%F
    goto :eof

    :sub1
    set name=%1
    move d:\temp\pdfprints\%name% R:\%name:~0,5%000\%name%
1
отвечен cha 2023-04-08 05:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх