Discussion:
Slette filer af typen .avi og på 32.554.432 byte?
(for gammel til at besvare)
Per JM Olsen
2010-01-10 09:52:42 UTC
Permalink
Hej

Jeg behøver hjælp til at få lavet en batfil/script der kan slette filer af
typen *.AVI og filen skal være 32.554.432 byte. (eller større)

Grunden til dette er at jeg har et overvågningssystem som danner den type
filer og opdager ind i disse, når filen er fuld så afsluttes denne og
komprimes af programmet
I mellemtiden køre der backup på filerne til en nas box den backup tager
også filer af de 32 mb med, de filer ønsker jeg ikke skal med over og fylde
unødigt,
Disse filer flytter den senere til en anden lokation via ftp, så er det en
masse data som er ubruglig der flyttes via ftp.

Derfor ønsker jeg at lave et script/bat fil der kan slette disse 32mb filer.

Hidtil uden held :(

Backup programmet (sync back pro), kan jeg nemlig ikke fortælle at det skal
springe filer over der er 32 mb eller større, det var det mest optimale hvis
det kunne lade sig gøre, det kan heller ikke springe filer over der er i
brug.

Håber der er en derude der kan hjælpe.
Jeg har prøvet med nedenstående bat fil men den sletter også dem der er
under grænsen :(

@echo on
echo Hello this delete files that are 32.768 mb os size
pause
for /F %%A in ("*.avi") do If %%~zA equ 33554432 del *.avi

Mvh Per
Anders J. Munch
2010-01-10 10:29:58 UTC
Permalink
Post by Per JM Olsen
Hej
Jeg behøver hjælp til at få lavet en batfil/script der kan slette filer af
typen *.AVI og filen skal være 32.554.432 byte. (eller større)
[...]
@echo on
echo Hello this delete files that are 32.768 mb os size
pause
for /F %%A in ("*.avi") do If %%~zA equ 33554432 del *.avi
Hej Per,

Mon ikke der skulle have stået "del %A" eller "del %%A" i st. for "del *.avi"
til sidst?

Her er i øvrigt et Python script til formålet:

import glob, os.path
for fn in glob.glob('*.avi'):
if os.stat(fn).st_size >= 32554432:
os.remove(fn)

mvh. Anders
Bertel Lund Hansen
2010-01-10 15:50:35 UTC
Permalink
Post by Per JM Olsen
@echo on
echo Hello this delete files that are 32.768 mb os size
pause
for /F %%A in ("*.avi") do If %%~zA equ 33554432 del *.avi
Prøv med

for /F %%A in ("*.avi") do If %%~zA gth 33554432 del %%A

Med "equ" får du kun slettet filer der har den præcise størrelse,
og med "del *.avi" får du slettet alle avi-filer uanset hvad du
ellers har skrevet.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
Loading...