Powershell dossier de la taille des dossiers sans lister les sous-Répertoires
J'ai trouvé plusieurs ressources utiliser le script suivant pour obtenir des tailles de dossier
$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems)
{
$subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum)
$i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
}
Le problème c'est qu'il répertorie également les sous-répertoires ie:
c:\test -- 10mb
c:\test\folder -- 10mb
c:\test\folder\deep -- 5mb
c:\test\folder\tuna -- 5mb
c:\test -- 20bm
c:\test\folder -- 20mb
c:\test\folder\deep -- 10mb
c:\test\folder\tuna -- 10mb
Je pense que vous savez de voir où je vais. Ce que je cherche, c'est juste le dossier parent résultats... DONC:
c:\test -- 10mb
c:\test -- 20mb
Comment cela peut-il être accompli avec Powershell?
....
Jetez un oeil à Hé, le scripteur! Arriver Répertoire Tailles en PowerShell. Le DirStats.ps1 script référencé il fait ce que vous demandez par défaut.
Je pense que vous êtes à la recherche de quelque chose comme ceci: jdhitsolutions.com/blog/2013/05/....
Si
Pour info, Get-ChildItem ne sera pas la liste de tous les fichiers ou dossiers qui sont cachés, sauf si vous utilisez le paramètre-Force.
Si je supprime il ne calcule pas pour les sous-répertoires
Je pense que vous êtes à la recherche de quelque chose comme ceci: jdhitsolutions.com/blog/2013/05/....
Si
$startFolder
est c:\test
pourriez-vous pas tout simplement supprimer le -recurse
?Pour info, Get-ChildItem ne sera pas la liste de tous les fichiers ou dossiers qui sont cachés, sauf si vous utilisez le paramètre-Force.
Si je supprime il ne calcule pas pour les sous-répertoires
OriginalL'auteur user3566297 | 2014-10-21
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour obtenir le total de la taille du contenu de chaque répertoire de façon récursive jusqu'à la sortie. Aussi, vous devez spécifier que le contenu que vous êtes accroché à mesurer ne sont pas des répertoires, ou vous risquez des erreurs (comme les répertoires n'ont pas de
Length
paramètre).Voici votre script modifié pour la sortie que vous recherchez:
Vous avez raison - mise à jour de la réponse
Parfait, merci beaucoup. DONC je suis un peu nouveau sur stackoverflow, était-il de mal à mettre à jour ma question d'origine avec ce que je pensais était la réponse?
Répondre à votre propre question c'est OK. Toutefois, vous devriez avoir posté une réponse au lieu d'une mise à jour.
mais c'était une réponse partielle, est encore incomplet. Pas de soucis je vais enlever mon montage. Merci encore pour votre aide!
OriginalL'auteur Kohlbrr
Cette simple solution a fonctionné pour moi aussi.
OriginalL'auteur Lingasamy Sakthivel
Désolé pour réanimer un mort thread, mais je viens de faire avec moi-même, et après avoir trouvé toutes sortes de fou pléthorique de solutions, j'ai réussi à venir avec ce.
Rapidement et en quelques lignes de code me donne un dossier à la taille, en Octets, que ce qui peut être facilement converti à toutes les unités que vous voulez avec
/1MB
ou similaires.Ai-je raté quelque chose? Par rapport à ce trop compliqué bordel il semble plutôt simple et au point. Pour ne pas mentionner que le code ne fonctionne même pas, puisque la fonction appelée n'est pas le même nom que la fonction définie. Et a été mauvais pendant 6 ans. 😉
Donc, toutes les raisons de ne PAS utiliser ce lecteur?
fonctionne un régal pour moi, si [long] est trop court :). long est d'environ 19 chiffres significatifs qui, je pense, est d'environ 10 exaoctets. Remplacer par [décimal] vous donne 28 chiffres significatifs et il prend environ le même temps pour calculer
Ouais, je suppose que je pourrais l'avenir de la code au détriment d'un peu plus de l'utilisation de la mémoire. Mais je soupçonne 10EB devrait bien pendant un certain temps. 😉
OriginalL'auteur Gordon
Ceci est similaire à https://stackoverflow.com/users/3396598/kohlbrr réponse, mais j'ai essayé d'obtenir la taille totale d'un seul dossier et constaté que le script ne prend pas en compte les fichiers dans la Racine du dossier que vous recherchez. Cela a fonctionné pour moi.
OriginalL'auteur sonance207
Ma proposition
OriginalL'auteur Esperento57
Intéressant de voir comment puissant mais comment impuissant PS peuvent être dans le même temps, venant d'une Nix apprentissage PS. après l'installation crgwin/gitbash, vous pouvez le faire n'importe quelle combinaison dans l'une des commandes:
taille du dossier courant:
du-sk .
taille de tous les fichiers et sous-dossiers du répertoire courant
du-sk *
la taille de tous les sous-dossiers (y compris les dossiers en cours)
trouver ./-type d -exec du-sk {} \;
OriginalL'auteur Kexin Z