Passer la chaîne ou la chaîne de tableau à une fonction dans Powershell
J'espère que c'est une question simple. J'ai une Powershell fonction qui fonctionne sur tous les fichiers dans un dossier donné. Il ya des moments où je voudrais avoir la fonction fonctionner sur un seul dossier et des moments où je voudrais qu'il fonctionne sur plusieurs dossiers, les chemins d'accès sont stockés dans un tableau. Est-il possible d'avoir une fonction d'être en mesure d'accepter à la fois un élément et un tableau?
Do-Stuff $aSingleFolder
Do-Stuff $anArrayofFolders
OriginalL'auteur mack | 2012-08-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également exécuter le processus de section au sein de la fonction. Il devrait ressembler à ceci:
Ensuite, lorsque vous appelez la Fonction. Faire de cette
Voici ce qui va arriver. Tout dans le
Begin
bloc sera exécuté en premier. Ensuite, pour chaque élément dans la$Folders
variable, tout enProcess
bloc sera exécuté. Après qu'il ait terminé, il sera exécuté ce qui est dans leEnd
bloc. De cette façon, vous pouvez transférer autant de dossiers que vous le souhaitez dans votre fonction. Ceci est très utile si vous souhaitez ajouter d'autres paramètres à cette fonction un jour.Pas de problème, je préfère largement faire des fonctions de ce genre, même si elles sont petites. Il y a eu quelques heures perdues réécriture d'une fonction sur une plus grande échelle. Bonne semaine à tous!
Notez que, comme il l'a déclaré à l'aide de
[String]$Folders
, cette fonction pour différentes valeurs transmises à travers le pipeline. Si vous modifiez le paramètre de déclaration à[string[]]$Folders
, alors vous pouvezforeach( $f in $Folders )
dans leprocess
bloc et il va travailler pourDo-Stuff <one folder>
,Do-Stuff <multiple>, <folders>
, et<multiple>, <folders> | Do-Stuff
. (Oh, et les backticks sont inutiles: ouvrez les crochets et les parenthèses compter que les continuations 🙂Cool, je ne savais pas à propos de l'ouverture des crochets et un tel. Merci pour l'information sur
[string[]]$folders
. J'ai hâte d'utiliser que dans le travail 🙂 bonne journée!OriginalL'auteur Nick
Dans Powershell, vous pouvez effectuer une itération sur un tableau et un seul élément de manière uniforme:
Le passage d'un seul élément sera la cause de la boucle foreach pour être exécutée une fois avec l'élément donné.
OriginalL'auteur Lee
Cela fonctionne sans cmd.exe et à l'aide de fichiers:
D'utilisation: n'oubliez pas votre sortie du terminal et de longueur 0 ou il va s'accrocher
....
OriginalL'auteur pdpelsem