Comment puis-je obtenir les valeurs uniques à partir de ce tableau dans PowerShell?
Pourquoi le code ci-dessous retour $null
? Je suis en train de stocker un peu de valeurs uniques.
$DailyPathsToDelete = @("C:\temp\IMG000483\","C:\temp\IMG000483\")
$DailyPathsToDelete = Select-Object $DailyPathsToDelete -Unique
OriginalL'auteur resolver101 | 2012-05-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer :
OriginalL'auteur JPBlanc
Réponse courte:
Pour obtenir tous les chemins d'accès unique, vous devez tuyau
$DailyPathsToDelete
àSelect-Object
et définir laUnique
commutateur.Plus réponse:
1. Pourquoi il ne fonctionne pas
Après l'exécution de votre script
$DailyPathsToDelete
est égal à$null
parce que (dans la deuxième ligne de votre script)$DailyPathsToDelete
est lié au paramètreProperty
. Le paramètreInputObject
de laSelect-Object
applet de commande a été pas speficified, c'est pourquoi le résultat de l'invocation deSelect-Object
est$null
.Cela peut être facilement vérifiée par le traçage de votre expression:
donne:
2. Comment résoudre le problème
À L'Aide De Select-Object
À L'Aide De Tri-Objet
3. Comment ne PAS fixer
Je vous déconseillons d'utiliser
Get-Unique
dans votre scénario depuis Windows local des systèmes de fichiers (NTFS, FAT et variantes) sont insensibles à la casse.Exemple:
OriginalL'auteur jon Z
Avec Get-Unique, gotcha - Get-Unique est sensible à la casse et vous avez également trier la liste en premier!
$DailyPathsToDelete = $DailyPathsToDelete | Sort-Object | Get-Unique
Avec Select-Object
$DailyPathsToDelete = $DailyPathsToDelete | Select-Object -Unique
Avec Tri-Objet
$DailyPathsToDelete = $DailyPathsToDelete | Sort-Object -Unique
"temp","Temp" | select -unique
renvoie à deux éléments, pas un seul.Aussi, avec Get-Unique, on doit utiliser la Casse paramètre pour le Tri-Objet: tester cette
"abc", "Abc", "def", "abc" | sort -Case | Get-Unique
-- avec et sans et vous obtenez des résultats différents!Vous avez absolument raison. Drôle, j'ai signalé ce problème à la PowerShell de l'équipe en 2011 et maintenant, c'est maintenant ajouté à la rubriques d'aide.
OriginalL'auteur Shay Levy