¿Cómo eliminar nombres de archivos con nombres parciales similares?

¿Cómo eliminar nombres de archivos con nombres parciales similares?

Tengo un montón de nombres de archivos con marca de tiempo (hasta nanosegundos) y solo quiero conservar un archivo por segundo. Por ejemplo, aquí hay algunos nombres de archivos:

11-14-29-033.jpg

(lo que significa que el archivo se grabó a las 11 horas, 14 minutos, 29 segundos y 33 nanosegundos).

11-14-29-602.jpg
11-14-29-839.jpg
11-14-29-953.jpg
11-14-30-406.jpg
11-14-30-847.jpg
11-14-31-091.jpg
11-14-31-419.jpg
11-14-31-667.jpg
11-14-32-364.jpg
11-14-32-619.jpg
11-14-32-913.jpg
11-14-33-150.jpg
11-14-33-485.jpg
11-14-33-708.jpg
11-14-34-052.jpg
11-14-34-336.jpg
11-14-35-174.jpg
11-14-36-563.jpg
11-14-36-788.jpg
11-14-37-278.jpg
11-14-37-584.jpg
11-14-38-050.jpg
11-14-38-841.jpg
11-14-39-196.jpg
11-14-39-736.jpg
11-14-39-870.jpg
11-14-40-091.jpg
11-14-40-766.jpg
11-14-41-052.jpg
11-14-41-676.jpg

¿Hay alguna manera de escribir un archivo por lotes (en Windows) para eliminar todos los archivos menos 1 por cada segundo?

Respuesta1

Esto debería hacer el trabajo:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET "source=C:\adjust\path"

FOR /R "%source%" %%F IN ("??-??-??-???.jpg") DO (
    SET "file_name=%%~nF"
    SET "file_name=!file_name:~0,-4!"
    REN "%%F" "!file_name!%%~xF" >nul 2>&1
)

FOR /R "%source%" %%G IN ("??-??-??-???.jpg") DO (
    DEL "%%G"
)

ECHO Done^^!
PAUSE

Este FOR /Rbucle cambiará el nombre de cada .jpgarchivo de HH-MM-SS-MMMa HH-MM-SSsimplemente eliminando los últimos 4 caracteres, a menos que el nombre del archivo ya exista. El RENcomando no cambiará el nombre del archivo en ese momento y luego se eliminará.

información relacionada