Avatar billede Slettet bruger
27. december 2004 - 00:28 Der er 4 kommentarer og
1 løsning

Finde nyeste fil - og slet resten

Hey

Jeg har en række filer f.eks.

12345-423.txt (dato 01-01-01)
12345-123.txt (dato 01-01-02)
67890-164.txt (dato 10-10-00)
12345-634.txt (dato 01-01-03)

Jeg vil gerne have fundet den nyeste fil, hvor de første 5 tgen er ens - og herefter slette de filer der er ældre end den nyeste fil.

Ovenstående vil så blive:

67890-164.txt (dato 10-10-00)
12345-634.txt (dato 01-01-03)

Desuden vil jeg gerne have renamet den nyeste fil til 12345.txt og 67890.txt - altså de 5 første tegn.

Hvis det kan laves i et script (bat) ville det var fint.

Håber ovenstående er til at forstå.

Tak
Avatar billede bertelbrander Novice
27. december 2004 - 00:42 #1
For at slette alle 12345*.* filer i mappen undtagen den nyeste kan du bruge følgende i en bat-fil:

@echo off
for /F "tokens=* skip=1" %%I in ('dir /B /O-D 12345*.*') do @del "%%I"

(virker ikke i Win95/98/ME).

Er de første 5 cifre faste eller skal der laves en loop for at finde disse numre?
Avatar billede Slettet bruger
27. december 2004 - 01:16 #2
Ja, der skal laves et loop - hvor den søger på alle ens (5 første cifre) filer.

Der er cirka 10.000 filer.
Avatar billede bertelbrander Novice
27. december 2004 - 01:40 #3
Du burde kunne bruge følgende:

@echo off
setlocal
set Curr=
set TempFile=C:\temp.txt
if exist %TempFile% del %TempFile%

for /F "tokens=*" %%I in ('dir /B /ON *') do call :FindType "%%I"

for /F %%Z in ('type %TempFile%') do call :EraseType %%Z

goto :eof

:FindType
set xxx=%~1
set xxx=%xxx:~0,5%
if [%xxx%]==[%Curr%] goto :eof
set Curr=%xxx%
echo %Curr%>>%TempFile%
goto :eof

:EraseType
for /F "tokens=* skip=1" %%I in ('dir /B /O-D %1*.*') do del "%%I"

Det er nok en god ide at teste det grundigt inden du sætter det til at slette familiealbumet, f.ex. ved lave en backup først.
Du kan erstatte ordet del i sidste linie med echo, så vil den udskrive en liste af filer den mener den skal slette.
Avatar billede Slettet bruger
03. marts 2005 - 14:26 #4
Tak.. kom med et svar ;)
Avatar billede Slettet bruger
18. april 2005 - 18:27 #5
Lukket ?!?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester