$string.IndexOf('.') à l'intérieur de powershell fonction renvoie l'invocation de méthode a échoué
Function doSomething($param1 $param2 $file)
{
...doing stuff
$pos = $file.IndexOf('.')
}
doSomething -param1 'stuff' -param2 'more stuff' -file 'C:\test.txt'
Renvoie l'erreur: l'invocation de Méthode a échoué parce que [le Système.IO.FileInfo] ne contient pas une méthode nommée "IndexOf'.
Mais en l'appelant à l'extérieur d'une fonction ou à partir de la ligne de commande fonctionne avec hors de question.
Est-ce une limitation de powershell ou est-il une astuce pour appeler les fonctions de chaîne à l'intérieur de powershell fonctions?
Merci pour l'aide!
OriginalL'auteur Dane Boulton | 2013-09-25
Vous devez vous connecter pour publier un commentaire.
IndexOf est une méthode de type
string
. Je soupçonne que quelque part dans...doing stuff
, vous êtes d'exploitation sur$file
de telle manière qu'il soit traité comme un Système.IO.FileInfo.Je crois que cela en partie parce que j'ai essayé de le reproduire dans mon environnement et réussi à le faire fonctionner:
Vous êtes d'exploitation sur
$file
à tous, ou de l'utiliser pour modifier d'autres fichiers? Si vous êtes et ne dérange pas l'objet d'un[System.IO.FileInfo]
, vous pouvez utiliser$file.fullname
pour obtenir votre chaîne de chemin de retour. Cela suppose que vous n'avez pas modifié d'une façon telle qu'il est devenu une collection de FileInfo objets.OriginalL'auteur Anthony Neace