Я очень новичок в написании командных файлов, и я не могу получить два новейших файла из одной папки для копирования в другую папку. У меня новые папки создаются автоматически каждый день, и я хочу, чтобы они автоматически перемещались в противоположное место, а не перемещались вручную каждый день.
Я был в состоянии заставить самую новую папку перемещаться, но всякий раз, когда я пытался что-либо получить второе, мне не везло. Любой совет будет принят во внимание

1 ответ1

0
  • Сортировка файлов в обратном направлении с помощью Dir /B /O-D /A-D
  • Нумеруйте файлы с помощью findstr /n
  • Если число меньше или равно Xnewest - двигайтесь

@Echo off
Set "Xnewest=2"
For /F "tokens=1* delims=:" %%A in (
  'Dir /B /A-D /O-D ^| Findstr /N "^"'
) Do If %%A Leq %Xnewest% echo Move "%%B" "X:\Path\to\dest\"

Если вывод выглядит нормально, удалите эхо в последней строке.

Образец вывода:

> dir /A-D/O-D
 Directory of A:\
07/21/2017  23:19               315 SU_1232190.cmd
07/21/2017  14:58               778 SO_45225802.cmd
07/19/2017  10:51               158 PassMinMax.cmd
07/19/2017  00:50                37 WhoStartedMe.cmd
07/18/2017  01:32             1.222 SO_45137227.cmd
               5 File(s)          2.510 bytes
               0 Dir(s)   1.049.776.128 bytes free
> SU_1232190.cmd
Move "SU_1232190.cmd" "X:\Past\to\dest\"
Move "SO_45225802.cmd" "X:\Past\to\dest\"

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