2017-01-19 2 views

Répondre

2

C'est assez facile en fait!

Vous le ferez avec deux filtres distincts, que PowerShell obtient via l'applet de commande Where-Object. Cette cmdlet accepte les comparaisons au format {$_.PropertyName -eq "Something"} ou PropertyName -eq "Something". Le format suivant est uniquement disponible sur PowerShell version 3 et ultérieure. Tout d'abord, pour filtrer uniquement les fichiers au-dessus de 100 Ko.

Where-Object Length -ge 100KB

La deuxième partie, où le nom de fichier contient quelque chose.

Where-object Name -like "*lowRes.jpg*"

Vous pouvez les rejoindre, mais je voudrais juste tuyau un dans l'autre, comme celui-ci.

dir *.jpg -Recurse | Where-Object Length -ge 100KB | Where-object Name -like "*lowRes.jpg*"

Vous pourriez vouloir mettre d'abord le filtrage de nom, parce que moins de fichiers auront un certain nom que d'être au-dessus ou au-dessous d'une certaine taille. Cela dépend de la disposition de vos fichiers.

Enfin, canaliser tout cela dans la cmdlet Export-Csv et bam, vous avez terminé!

+0

Y at-il une raison pour laquelle vous divisez vos déclarations 'WHERE', ou est-ce juste Préférence personnelle? '' Aussi, je voulais juste dire que je suis un grand fan de votre série sur la façon de faire une interface graphique et les messages de blog de scripts filetés. '' – TheMadTechnician

+0

Je les scinde parce que vous ne pouvez pas joindre les instructions where et conserver la nouvelle syntaxe facile à lire. J'aime la nouvelle syntaxe, alors j'ajoute la petite inefficacité de l'utilisation de deux commandes séparées. Certains ne sont pas d'accord et c'est bien, mais je trouve qu'il est plus facile de lire et d'interpréter. Et je suis content que tu aimes le site. Faites-moi savoir si vous souhaitez que je couvre un certain sujet :) – FoxDeploy

+0

Pourquoi ne pas utiliser directement 'ls * _lowres.jpg -Rec'? – LotPings

0

vous pouvez le faire simplement comme ceci:

Get-ChildItem "C:\temp" -Recurse -file -filter "*_lowRes.jpg" | 
       Where Length -ge 100KB | select fullname, Length | 
           export-csv "c:\temp\result.csv" -NoType 

version courte (sans puriste):

gci "C:\temp" -Rec -file -filter "*_lowRes.jpg" | ? L -le 100KB | select fu*, le* | epcsv "c:\temp\result.csv" -Not