• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skrypt bat, który usuwa nie tylko pliki

Object Storage Arubacloud
+1 głos
1,036 wizyt
pytanie zadane 13 marca 2021 w Inne języki przez Tomek0 Nowicjusz (130 p.)

Dzień dobry,

od kilku dni próbuję rozwiązać problem ze skryptem i harmonogramem. Ale od początku dla rozjaśnienia:

Mam Folder X w którym tworzą codziennie nowe podfoldery z plikami BU. Chciałem stworzyć skrypt, który będzie usuwać wszystkie podfoldery wraz z plikami po 3 dniach od utworzenia. Gdy utworzyłem plik bat o składni

forfiles /p "ścieżka" /s /m *.* /c "cmd /c Del @path" /d -3

to sytuacja wygląda następująco:

- pliki starsze niż 3 dni są usuwane

foldery/podfoldery  zostają i tylko zmienia się data i godzina modyfikacji zmienia się z automatu na obecną

Czy mogę prosić, gdzie popełniam błąd? Wydawało mi się, że nie przeszukałem cały Internet i albo skrypt w ogóle nie działa albo dzieje się jak powyżej.

 

1 odpowiedź

+1 głos
odpowiedź 13 marca 2021 przez VBService Ekspert (253,340 p.)
edycja 13 marca 2021 przez VBService

Propozycja:  wink

Sprawdzenie daty robię za pomocą: FORFILES ... /d -3

a do usuwania używam: if @isdir==TRUE i RD /S /Q

/C command

@file – returns the name of the file, with no path information.
@fname – returns the file name without extension. If the file has multiple extensions, e.g., file.txt.doc, only the trailing extension is truncated, e.g., a result of file.txt.
@ext – returns only the extension of the file. If the file has more than one extension, only the trailing extension is returned.
@path – returns the full path of the file, including the file name.
@relpath – returns the relative path of the file.
@isdir – returns TRUE if a file type is a directory, and FALSE for files.
@fsize – returns the size of the file in bytes.
@fdate – returns the last modified date of the file.
@ftime – returns the last modified time of the file.

FORFILES /p "x" /m * /d -3 /c "cmd /c if @isdir==TRUE rd /s /q @file"
PAUSE

Wersja z podaniem "ilości dni" jako parametr:  /d %1  wink

FORFILES /p "x" /m * /d %1 /c "cmd /c if @isdir==TRUE RD /s /q @file"
PAUSE

Podobne pytania

0 głosów
1 odpowiedź 276 wizyt
0 głosów
1 odpowiedź 130 wizyt
pytanie zadane 27 lutego 2019 w Inne języki przez Marak123 Stary wyjadacz (11,190 p.)
+1 głos
1 odpowiedź 309 wizyt

92,576 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...