J'ai créé une liste de répertoires de fichiers comme celui-ci:

JPGS.LST:
"L:\_Testing\2016-05-20 20.22.53.jpg"
"L:\_Testing\2016-05-20 20.23.07.jpg"
"L:\_Testing\2016-05-20 20.23.12.jpg"
"L:\_Testing\2016-05-20 20.59.31.jpg"
"L:\_Testing\2016-05-20 21.19.25.jpg"
"L:\_Testing\2016-05-20 21.19.28.jpg"
"L:\_Testing\2016-05-20 21.49.09.jpg"
"L:\_Testing\2016-05-20 21.49.12.jpg"

À partir de cette liste, je veux obtenir un total de toutes les tailles de fichiers - de la liste.

J'utilise cette liste pour réduire ces images. Je veux exécuter à nouveau le script pour voir la taille totale des mêmes fichiers après la réduction, j'ai donc une comparaison avant et après. D'autres exemples que je vois utilisent une liste de répertoires PowerShell ... Je dois pouvoir utiliser le fichier d'entrée pour déterminer la taille totale des fichiers dans la liste des répertoires.

J'ai essayé:

$Files=Get-Content $Listfile
$totalSize = ($Files | Measure-Object -Property Length -Sum Length).Sum 

Mais cela ne produit pas les résultats escomptés. J'aimerais qu'il se résout à quelque chose comme

$TotalSize=12.5 MB

Obi Wan ... tu es mon seul espoir!

0
Bryan Keadle 23 mai 2018 à 08:19

3 réponses

Meilleure réponse

Vous devrez itérer les fichiers contenus dans JPGS.LST:

$TotalSize = 0
ForEach ($File in Get-Content '.\JPGS.LST'){
    If (Test-Path $File.Trim('"')){$TotalSize+=(GI $File.Trim('"')).Length}else{"$File not found"}
}
"`$TotalSize={0:N2} MB" -f ($TotalSize/1MB)
1
23 mai 2018 à 06:22

C'est peut-être ce que vous voulez:

ls -recurse | % { [long]($_.Length) } | Measure-Object -sum | % { $_.Sum }
0
f6a4 23 mai 2018 à 05:56
$files = Get-ChildItem $path -Recurse -File
$sum=($files | Measure-Object -Property length -Sum).sum

Si vous voulez une sortie souhaitée avec somme (Mo, Go ..etc), vérifiez PowerShell affiche la taille des fichiers en Ko, Mo ou Go discussion avec des techniques intéressantes.

0
Ketanbhut 23 mai 2018 à 05:44