Bath kasujący z folderu pliki starsze niż xx dni

Offtop Admin 01-01-1970 1881 5
01-01-2007 21:44
Witajcie,

Projekt:

Napisać batha który wykasuje z folderu wszystkie pliki starsze niż xx dni.


Czy macie jakąś konkretną koncepcję ?

A może MCbx zasugeruje gotowy program ?
01-01-2007 21:46
A musi być BATH?
01-01-2007 21:48
Absolutnie nie...

Luk

01-01-2007 22:02
Mógłbym coś naskrobać w BASICu i skompilować, chyba że może być pod Windows to Haker lepiej się tym zajmie.

Plik wsadowy raczej nie dał by sobie rady z tym zadaniem.
01-01-2007 22:03
Oczywiście że windowsa, myślę o serwerze...

Bath był by dobry, bo można by go bez obsługowo dodać jako zaplanowane zadanie. uruchomienie raz w miesiącu.
03-01-2007 19:52
Może ktoś to poprawi i napisze z tego słuszny program? Nie mam ostatnio czasu, wiecie, szkoła, więc naskrobałem kod, który działa. Jest nieczytelny, warunki postawione są zapewne z błędami (chociażby istnienie jakiegokolwiek parametru spowodowałoby potraktowanie go jak ścieżki i przejście dalej), a program był pisany po nocy przed kompem, więc nie dziwcie się, jak zobaczycie jakieś głupoty. Testowałem i działał :). Nie narzekajcie na zmienną Co, miała zostac użyta (po jej roli jako kod błędów i wyzerowaniu) jako licznik usuniec, ale nie napisałem tego w końcu.

program Kasownik;
{MCbx 2007; 3.01.2007, 3:25 rano}
{Jeszcze raz przepraszam za zabaloaganiony kod!}

USES Crt, DOS;

var Katalog,nazwa:string;
M,D,Y,Co:integer;
DT:DateTime;
fajl:text;
Infoz:SearchRec;

BEGIN
IF ParamStr(1)='' THEN begin {Brak parametru}
clrScr;
Writeln ('Uzywaj tak: Program.exe [katalog] [dzien] [miesiac] [rok]');
HALT;
end

ELSE BEGIN
ClrScr;
writeln('Program wykonuje sie. Nie mialem czasu na napisanie textow');

Katalog:=ParamStr(1);
Val(ParamStr(2), D, Co);
Val(ParamStr(3), M, Co);
Val(ParamStr(4), Y, Co);
Co:=0;

FindFirst(Katalog+'\*.*',$3F,infoz);
{Poradzilismy sobie ze znajdowaniem. Nasze wyniki siedza w INFOZ. To rekordowiec, mamy go rozpruc}
{przy uzyciu petli, ktora bedzie trwac dopoki DOs nie dostanie szajby}

WHILE DosError=0 DO
      Begin   
    If (infoz.name<>'.')  AND (Infoz.name<>'..') then begin
    Assign (fajl,Katalog+'\'+Infoz.Name);
    {$I-}
    Reset(fajl);
    if IOResult=0 THEN begin
     {$I+}
     UnpackTime(infoz.time,DT);
     WITH DT DO
         BEGIN
          if year       if (year=y) AND (month       if (year=y) AND (month=M) AND (day       END;
     Close(fajl);
      END; {Sprawdzanie IOResulta}
       end; {warunek if infoz.name<>..}
     FindNext(INFOZ);
     END; {Petla glowna}

END; {Ten END jest od tego do parametru z linii 22}
Writeln('Koniec programu');
END.

Ten wątek został zamknięty. Aby rozpocząć nową dyskusję, zaloguj się.