[batch][altro] controllo dimensione più cartelle
Avrei bisogno di tenere sott'occhio la dimensione di alcune cartelle e magari ricevere un avviso visivo se tali cartelle superano un tot di gigabyte occupati o che si avvicina al massimo possibile, solo visuale
Esempio, una cartella dovrà contenere massimo 10GB, eseguendo lo script\programma\quel_che_è se l'occupazione arriva vicino a 10 o superiore deve comparire una avviso Purtroppo non ne capisco nulla di programmazione nè di script avanzati, se non un po' di batch DOS, infatti allego ciò che ho partorito documentandomi in rete: Codice:
:: Ma mi sono scontrato con l'impossibilità di eseguire calcoli con cifre troppo grandi, ed inoltre non saprei come far visualizzare eventuali avvisi Ho provato a cercare programmini adattabili allo scopo ma non ne ho trovati, se non i classici FolderSize e simili Qualche anima pia che mi da qualche consiglio o aiuto? Grazie |
nel set di comandi windows, c'è il comodo diruse.exe senza dover scomodare script
https://ss64.com/nt/diruse.html |
Non esiste in Win10, da dove la prendo?
Trovato un equivalente della Sysinternals, DU Ma è lo stesso, come faccio a fare apparire avvisi e fare calcoli? |
diruse.exe fa parte di un gruppo di utility di Microsoft. Se cerchi in rete lo trovi.
forse questo è equivalente https://docs.microsoft.com/en-us/sys...s/downloads/du |
Si, grazie misterx, avevo trovato proprio DU
Ma c'è un problema... mi da valori errati rispetto a Esplora file di Windows, chissa perchè... |
guarda se entrano in goco file di sistema e quindi nascosti
|
No, niente file sistema\nascosti
Quindi... boh! |
Cerca di passare a qualcosa di più avanzato, come VBS o PowerShell.
La sintassi è semplice, ma ti apre un nuovo mondo di possibilità (per quanto sia fattibile con i batch, ma come vedi meno codice, più leggibile) VBS Codice:
Dim objFSO, myFolders, Folder, objFolder, sizeFolder |
Quote:
diruse.exe faceva parte di una qualche raccolta di tools per Windows ed era un programma di soli 14 KB, si deve avere la pazienza di cercare in rete. |
@ x_Master_x
è che sono completamente digiuno, non saprei nemmeno da dove cominciare Consigli su questo? Qualche link da cui iniziare a studiare? VBS o PowerShell non fa differenza per me, visto che non li conosco entrambi, ma VBS lo vedo più 'logico' @misterx ok, ho visto che dalla casa madre andrebbe scaricato tutto un pacchetto, e per avere solo quella funzione non mi pare il caso, continuo a cercare... Comunque in sostituzione dello script che ho scritto ho provato un programmino che fa le stesse cose, visualizza dimensioni cartelle in modo compatto, TreeSizeFree-Portable, per ora mi arrangio con quello Ma anche lo script VBS messo da x_Master_x sarebbe ottimo, lo devo solo adattare allo scopo (ad esempio dovrebbe visualizzare in contemporanea nella stessa finestrella dimensioni cartelle e se supera o meno un valore stabilito per ognuna di esse) Grazie ad entrambi [edit] ho scoperto il perchè della differenza in byte tra DU e Esplora file, ed è più preciso DU (DU segna più di Esplora file) Esplora file non conteggia alcune funzioni nascoste dei file NTFS, in questo caso la 'Zone.Identifier' memorizzata come Alternate Data Stream nel file, sarebbe la voce che compare facendo destro sul file\proprietà e a volte compare sotto 'Sicurezza: il file proviene da un altro computer ecc...' e la spunta 'Annulla blocco', se annullo il blocco per tutti i file presenti nella cartella allora i valori coincidono al byte [/edit] |
Qualsiasi risorsa online va bene per i VBS, se usi i batch alla fine ti basta giusto imparare la sintassi di base, if, cicli ecc
Comunque non ho capito il risultato che vorresti. Una finestra (?) che aggiorna i valori in dimensioni di queste cartelle in "tempo reale" (quantificare il tempo reale? Ogni quanto?) te li mostra a schermo sempre e ti avvisa quando supera? Se lo scopo è sapere quando una di queste cartelle supera il valore x, basta quello che ho fatto. Togli il primo WScript.Echo, lascia il secondo. Quindi a quel punto ti appare la finestra quando solo una delle directory supera il valore x. Con pianifica attività, imposti un task che lancia lo script ogni 5 minuti a ciclo infinito. Se appare la finestra, sai perché e chi. |
senza voler scomodare programmi esterni ed usando le risorse del sistema operativo, ti ho messo insieme questo mio vecchio script che mi sono stancato di testare :D (non mi occupo più di sistemistica) e lo lascio a te come compito, così puoi dire di aver partecipato. Buon lavoro e buon divertimento.
Codice:
@echo off set /a g=1048576 converti i byte che ti vengono restituiti in MB dato che il valore ritornato dal batch è in byte, insomma, lavoraci un po su. |
Gestione delle quote
https://docs.microsoft.com/it-it/win...ota-management Creare quote per limitare lo spazio consentito per un volume o una cartella e generare notifiche quando si avvicinano o superano i limiti di quota. |
@ Perseverance
Non ho mai usato la gestione quote per cartelle ma dal link che hai messo sembra sia possibile nelle varie versioni Server di Win, con la mia 10 Pro credo posso gestire solo quote disco, non cartelle. Sbaglio? @ misterx Grazie, vedo e provo @ x_Master_x Si, lo scopo attuale è solo sapere se una di queste cartelle supera un tot, dentro sono memorizzati principalmente file audio HD di qualche centinaio di megabyte a brano, ed ogni cartella corrisponde ad una chiavetta USB\lettore audio\smartphone, e questo al momento per due persone (quindi tutto doppio). Avere quindi sott'occhio spazio usato e disponibile per una periferica esterna sarebbe molto utile Esempio: PINO-carelle 2-per lettore audio max 32GB e smartphone max 64GB, BOBO-cartelle 4-per lettore audio max 256GB, smartphone max 128GB, chiavetta1 USB max 64GB, chiavetta2 USB max 128GB Provo col tuo VBS |
Visto che alla fine non è poi così complesso? Hai fatto un array che si incrementa ad ogni ciclo, aggiunto parametri all'MsgBox e formattato i caratteri. È comunque un altro mondo rispetto ai batch.
P.S. Non hai dichiarato miaVar |
Si, modificare ciò che già c'è posso farlo, se dovessi progettare uno script da zero... non saprei come fare al momento
Vero che è tutta un'altra cosa, bisogna solo provare, provare, pro... Per il P.S. è vero, ma non avevo nemmeno messo il codice finale... che metto 'mo, potrebbe essere di ispirazione ad altri Codice:
Dim objFSO, myFolders, Folder, objFolder, sizeFolder, testo, myDim, miaVar, pul |
Tutti gli orari sono GMT +1. Ora sono le: 12:13. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.