![Como deletar nomes de arquivos com nome parcial semelhante?](https://rvso.com/image/1552785/Como%20deletar%20nomes%20de%20arquivos%20com%20nome%20parcial%20semelhante%3F.png)
Eu tenho vários nomes de arquivos com carimbo de data / hora (até nanossegundos) e só quero manter um arquivo por segundo. Por exemplo, aqui estão alguns nomes de arquivos:
11-14-29-033.jpg
(o que significa que o arquivo foi gravado às 11 horas, 14 minutos, 29 segundos e 33 nanossegundos).
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
Existe uma maneira de escrever um arquivo em lote (no Windows) para remover todos os arquivos, exceto 1 por segundo?
Responder1
Isso deve fazer o trabalho:
@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 /R
loop renomeará todos .jpg
os arquivos de para HH-MM-SS-MMM
simplesmente HH-MM-SS
removendo os últimos 4 caracteres, a menos que o nome do arquivo já exista. O REN
comando não renomeará o arquivo e ele será excluído posteriormente.