Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmazione (https://www.hwupgrade.it/forum/forumdisplay.php?f=38)
-   -   Creare un BAT in DOS (https://www.hwupgrade.it/forum/showthread.php?t=2997876)


finalcut 12-02-2024 08:25

Creare un BAT in DOS
 
Ho programmato una telecamera per salvare su un server (un mio vecchio PC che ora utilizzo solo per questa funzione) i video prodotti dalla stessa in caso di allarme. Già la "creazione" del server (su windows 10) mi ha creato non pochi problemi ma ora, con grande soddisfazione, tutto funziona. Ora dovrei attivare una pianificazione (usando appunto l'utilità di pianificazione di win10) che mi elimini ogni giorno la directory più vecchia di "tot" giorni.
Prima di mettere in funzione la telecamera avevo già predisposto un semplice .bat che funzionava a meraviglia (cancellava cioè i file MP4 più vecchi di 3 giorni). Il problema però è che ho scoperto che la telecamera salva i video in questo modo:
Video (directory principale)
2024 (anno)
02 (mese)
10 (giorno)
11
12
13
...
In altre parole la directory da cancellare (poniamo ogni 4 giorni quindi nell'esempio proposto la directory del giorno 13) cambia ogni volta, mentre il mio .bat semplicemente puntava alla directory principale.
Quindi ... qui mi sono fermato perché non ho le competenze per proseguire.
Anni fa, proprio su questo forum, a suo tempo un "caro" utente mi aveva predisposto un piccolissimo file .PHP che faceva la stessa cosa ogni qualvolta un utente visualizzava sul sito l'ultima foto proposta. Se pensate possa servire lo posto ma, data la differenza di linguaggi, credo serva a poco.
Qualcuno ha un idea ? Grazie
Roberto

finalcut 12-02-2024 08:28

Dimenticavo, il BAT che avevo scritto era il seguente:
FORFILES /P “D:\VideoCooperativa” /M *.JPG /D -1 /C “CMD /C DEL @PATH”

finalcut 14-02-2024 09:57

Scusatemi: nessuna idea ?

Perseverance 14-02-2024 11:19

Se devi cancellare le cartelle più vecchie di 4 giorni non puoi fare così? Probabilmente và sistemato un po' ma dovresti partire da questa base.
Codice:

FORFILES /p "D:\VideoCooperativa" /s /m *.* /D -4 /C "cmd /c del @relpath"

finalcut 17-02-2024 07:52

Quote:

Originariamente inviato da Perseverance (Messaggio 48438900)
Se devi cancellare le cartelle più vecchie di 4 giorni non puoi fare così? Probabilmente và sistemato un po' ma dovresti partire da questa base.
Codice:

FORFILES /p "D:\VideoCooperativa" /s /m *.* /D -4 /C "cmd /c del @relpath"

Ti ringrazio per il suggerimento che mi ha stimolato a capire e a cercare. Per tua conoscenza ti dico che il tuo .bat mi da questo errore: "Errore, sintassi non valida. L'opzione /C non è consentita per un numero di volte superiore a "1".

Ho girato ancora in rete ed ho trovato (spero ti interessi) questo:
@echo on
:: set folder path
set dump_path=d:\VideoCooperativa\2024\02

:: set min age of files and folders to delete
set max_days=4

:: remove files from %dump_path%
forfiles -p %dump_path% -m *.* -d -%max_days% -c "cmd /c del /q @path"

:: remove sub directories from %dump_path%
forfiles -p %dump_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path"
cmd /k

Il primo e ultimo "comando" li toglierò una volta testato bene il tutto. Funziona ma l'unico inconveniente è che ogni mese dovrò modificare il batch con il numero mese successivo ed ogni anno ... il nuovo anno.
Grazie ancora Roberto


Tutti gli orari sono GMT +1. Ora sono le: 01:01.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.