Lors de l'examen de certains problèmes, j'ai trouvé que la raison était une conversion différente inattendue en chaîne [] de données d'entrée apparemment identiques. A savoir, dans le code ci-dessous, deux commandes renvoient les deux mêmes éléments File1.txt et File2.txt. Mais la conversion en chaîne [] donne des résultats différents, voir les commentaires.Mystérieuse conversion différente en chaîne [] de données d'entrée apparemment identiques
Des idées pourquoi est-ce? Cela pourrait être un bug. Si quelqu'un le pense aussi, je le soumettrai. Mais il serait bon de comprendre ce qui se passe et d'éviter les pièges comme ça.
# *** WARNING
# *** Make sure you do not have anything in C:\TEMP\Test
# *** The code creates C:\TEMP\Test with File1.txt, File2.txt
# Make C:\TEMP\Test and two test files
$null = mkdir C:\TEMP\Test -Force
1 | Set-Content C:\TEMP\Test\File1.txt
1 | Set-Content C:\TEMP\Test\File2.txt
# This gets just file names
[string[]](Get-ChildItem C:\TEMP\Test)
# This gets full file paths
[string[]](Get-ChildItem C:\TEMP\Test -Include *)
# Output:
# File1.txt
# File2.txt
# C:\TEMP\Test\File1.txt
# C:\TEMP\Test\File2.txt
On dirait un bug. – stej
Oui, je dirais que c'est un bug que PowerShell construit des objets FileInfo de différentes manières en fonction des paramètres, voir ma propre réponse à la question pour plus de détails. –