Übergeben Sie String oder String-Array an eine Funktion in Powershell

8

Ich hoffe, das ist eine einfache Frage. Ich habe eine Powershell-Funktion, die auf alle Dateien in einem bestimmten Ordner funktioniert. Es gibt Zeiten, in denen ich möchte, dass die Funktion in einem einzigen Ordner arbeitet und wenn ich möchte, dass sie in mehreren Ordnern arbeitet, deren Pfade in einem Array gespeichert sind. Gibt es eine Möglichkeit, eine Funktion in die Lage zu versetzen, sowohl ein einzelnes Element als auch ein Array zu akzeptieren?

%Vor%     
mack 08.08.2012, 18:54
quelle

3 Antworten

9

Sie können den Prozessabschnitt auch innerhalb der Funktion ausführen. Es würde so aussehen:

%Vor%

Dann, wenn Sie die Funktion aufrufen. Mach es so

%Vor%

Hier ist, was passieren wird. Alles im Block Begin wird zuerst ausgeführt. Dann wird für jeden Eintrag in der Variablen $Folders alles im Block Process ausgeführt. Nachdem dies abgeschlossen ist, wird es ausgeführt, was im Block End ist. Auf diese Weise können Sie beliebig viele Ordner in Ihre Funktion pipen. Dies ist sehr hilfreich, wenn Sie dieser Funktion eines Tages zusätzliche Parameter hinzufügen möchten.

    
Nick 08.08.2012, 20:11
quelle
7

In Powershell können Sie über ein Array und ein einzelnes Element auf einheitliche Weise iterieren:

%Vor%

Wenn Sie ein einzelnes Element übergeben, wird die foreach einmal mit dem angegebenen Element ausgeführt.

%Vor%     
Lee 08.08.2012 19:01
quelle
0

Dies funktioniert ohne cmd.exe und mit Dateien:

%Vor%

Verwendung: Vergessen Sie nicht Ihre Exit's und Terminal Länge 0 oder es hängt

%Vor%

....

    
pdpelsem 19.02.2015 16:02
quelle

Tags und Links