2013-01-16 3 views
1

J'essaie de quelque chose de très simple dans PowerShell, j'ai instance de ProjectItem et je voudrais lire la valeur de la propriété FileNames (documenté comme un tableau de chaînes). Cependant, il s'avère assez difficileDTE - Lecture ProjectItem.FileNames dans powershell

ForEach ($item in $scripts.ProjectItems) { 
    Write-Host $item.FileNames 
    Write-Host $item.FileNames[0] 
    Write-Host $item.FileNames(0) 
} 

Mon but ici est de déplacer des fichiers autour d'un projet. La sortie de ces 3 lignes Write-Host est

string FileNames (short) {get} 
string FileNames (short) {get} 
string FileNames (short) {get} 

Y at-il quelque chose que j'ai spécial à faire pour lire comme un tableau?

Répondre

4

Lorsque vous évaluez une méthode .NET sans l'appeler, c'est-à-dire en fournissant des parenthèses, PowerShell émet la (les) signature (s) de la méthode. Essayez:

Write-Host $item.get_FileNames(0) 

Mise à jour: selon l'OP suivantes fonctionne:

Write-Host $item.FileNames(0) 
+0

En fait: Write-Host item.FileNames de $ (0) fonctionne. Je dois l'avoir manqué d'une manière ou d'une autre dans la sortie de débogage. Il ne fonctionnera pas avec une boucle ForEach cependant, mais c'est ok. Je vais marquer le vôtre en réponse car il explique la "sortie bizarre" (la signature émise) que je reçois. – Sam

+0

aucune des 4 options (OP et réponse) ne semble fonctionner pour moi = ( '" Le paramètre est incorrect. (Exception de HRESULT: 0x80070057 (E_INVALIDARG)) "' et 'CategoryInfo: NotSpecified: (:) [] , GetValueInvocationException' et 'FullyQualifiedErrorId: CatchFromBaseAdapterParameterizedPropertyGetValueTI' lors de l'utilisation de' write-host $ item.FileNames (0) "104 pass!" ' – Maslow

+0

bien, l'hôte d'écriture' $ item.FileNames (0) 'fonctionne. Je passais à ça doit avoir changé je suppose. – Maslow

Questions connexes