Un script PowerShell pour trouver la taille du fichier et le nombre de fichiers d'un dossier avec des millions de fichiers?

Le but du script est le suivant:

  1. Imprimer le nombre de fichiers de manière récursive trouvé à l'intérieur d'un répertoire
    (en omettant les dossiers eux-mêmes)
  2. Imprimer le total de la somme de la taille du fichier de l'annuaire
  3. Pas le plantage de l'ordinateur en raison du massif de l'utilisation de la mémoire.

Jusqu'à présent (3) est la partie la plus difficile.

Voici ce que j'ai écrit et testé jusqu'à présent. Cela fonctionne parfaitement bien sur les dossiers avec une centaines, voire un millier de fichiers:

$hostname=hostname
$directory = "foo"
$dteCurrentDate = Get-Date f "yyyy/MM/dd"

$FolderItems = Get-ChildItem $directory -recurse
$Measurement = $FolderItems | Measure-Object -property length -sum
$colitems = $FolderItems | measure-Object -property length -sum
"$hostname;{0:N2}" -f ($colitems.sum / 1MB) + "MB;" + $Measurement.count + " files;" + "$dteCurrentDate"

Sur les dossiers avec des millions de fichiers, cependant, la $colitems variable devient tellement énorme de la collecte de l'information des millions de fichiers qu'il rend le système instable. Est-il un moyen plus efficace pour attirer et de stocker cette information?

InformationsquelleAutor Stephen Wood | 2011-08-16