мы пытаемся использовать пакетный файл для перемещения документов в определенные подкаталоги. Все файлы начинаются с формата даты: mmddyyyy_filename. Наша структура папок выглядит следующим образом: c: \ client \ user \ year \ month. Все файлы загружаются в каталог c: \ client \ user. Оттуда мы должны отсортировать файлы в соответствующий год, а затем в соответствующие месяцы. В некоторых из этих каталогов будет более 10000 файлов, поэтому выполнение этого вручную занимает очень много времени. Мы создали пакетный файл, который позволяет нам устанавливать переменную для клиента, пользователя, года и месяца, но мы хотели бы по возможности циклически проходить месяц и год, если это возможно. Текущий пакетный файл выглядит так:
@echo off
:client
set /p client= Which client?
:Provider
set /p provider= Which provider (First initial, last name)?
/k if %provider% == clean GOTO Cleanup
/k if %provider% == x GOTO client
/k if %provider% == *. * GOTO Year
:Year
set /p year= Which year (4 digit year)?
if %year% neq 2019 GOTO Month
if %year% == 2019 GOTO provider
:Month
set /p month= Which month (2 digit number)?
if %month% neq 13 GOTO Command
if %month% == 13 GOTO Year
:Command
E:
cd E:\Backups\"%client%"\"%Provider%"\
move %month%??%year%_* E:\Backups\"%client%"\"%Provider%"\%year%\%month%
GOTO Month
:Cleanup
ROBOCOPY "E:\Backups\%client%" "E:\Backups\%client%" /S /MOVE
GOTO client
Вместо того, чтобы вводить месяцы по отдельности, 01, 02, 03 и т. Д., Мы бы хотели, чтобы он проходил по каждому из этих месяцев без какого-либо участия пользователя. В идеале это будет проходить через 2007-2018 годы. В настоящее время, когда мы набираем месяц 13, он возвращает нам приглашение на Год, когда мы вводим 2019, он возвращает нас на приглашение провайдера.
Любая помощь в достижении этого была бы великолепна!