Führt einen Vorgang für die einzelnen Eingabeobjekte einer Gruppe von Eingabeobjekten aus. (ForEach-Object)

   

NAME
ForEach-Object

# ÜBERSICHT
Führt einen Vorgang für die einzelnen Eingabeobjekte einer Gruppe von Eingabeobjekten aus.

# SYNTAX
ForEach-Object [-Process] <ScriptBlock[]> [-Begin <scriptblock>] [-End <scriptblock>] [-InputObject <psobject>] [<CommonParameters>]

# BESCHREIBUNG
Das Cmdlet "ForEach-Object" führt einen Vorgang für die einzelnen Eingabeobjekte einer Gruppe von Eingabeobjekten aus. Die Eingabeobjekte können über die Pipeline an das Cmdlet übergeben oder mit dem InputObject-Parameter angegeben werden.

Der auszuführende Vorgang wird in einem Skriptblock beschrieben, der für das Cmdlet als Wert des Process-Parameters bereitgestellt wird. Der Skriptblock kann ein beliebiges Windows PowerShell-Skript enthalten.

Innerhalb des Skriptblocks wird das aktuelle Eingabeobjekt durch die Variable "$_" dargestellt.
Zusätzlich zu dem Skriptblock, der die für die einzelnen Eingabeobjekte auszuführenden Vorgänge beschreibt, können Sie zwei weitere Skriptblöcke angeben. Ein Skriptblock, der als Wert des Begin-Parameters angegeben wird, wird vor der Verarbeitung des ersten Eingabeobjekts ausgeführt. Der andere wird als Wert des End-Parameters angegeben und nach der Verarbeitung des letzten Eingabeobjekts ausgeführt.

Die Ergebnisse der Auswertung sämtlicher Skriptblöcke, einschließlich der mit "Begin" und "End" angegebenen, werden über die Pipeline übergeben.

# PARAMETER
-Begin <scriptblock>
Gibt einen Skriptblock an, der vor dem Verarbeiten von Eingabeobjekten ausgeführt werden soll.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-End <scriptblock>
Gibt einen Skriptblock an, der nach dem Verarbeiten aller Eingabeobjekte ausgeführt werden soll.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

-InputObject <psobject>
Akzeptiert ein Objekt, für das der im Process-Parameter angegebene Skriptblock einen Vorgang ausführt. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.

Erforderlich? false
Position? named
Standardwert
Pipelineeingaben akzeptieren?true (ByValue)
Platzhalterzeichen akzeptieren?false

-Process <ScriptBlock[]>
Gibt den Skriptblock an, der auf die einzelnen eingehenden Objekte angewendet wird.

Erforderlich? true
Position? 1
Standardwert
Pipelineeingaben akzeptieren?false
Platzhalterzeichen akzeptieren?false

<CommonParameters>
Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug",
"ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable",
"OutBuffer" und "OutVariable". Weitere Informationen
erhalten Sie mit dem Befehl "get-help about_commonparameters".

# EINGABEN
System.Management.Automation.PSObject
Sie können jedes Objekt über die Pipeline an ForEach-Object übergeben.

# AUSGABEN
System.Management.Automation.PSObject
Welche Objekte ForEach-Object zurückgibt, hängt von der Eingabe ab.

# HINWEISE

# BEISPIEL 1

C:\PS>30000,56798,12432 | foreach-object -process {$_/1024}

Beschreibung
-----------
Dieser Befehl akzeptiert ein Array von ganzen Zahlen, teilt jede davon durch 1024 und zeigt die Ergebnisse an.

# BEISPIEL 2

C:\PS>get-childitem C:\ | foreach-object -process { $_.length / 1024 }

Beschreibung
-----------
Mit diesem Befehl werden die Dateien und Verzeichnisse im Stamm des Laufwerks "C:" abgerufen, und deren jeweilige Größe wird abgerufen und angezeigt. Die Nullen stellen Verzeichnisse dar, deren Dateigröße nicht verfügbar ist.

# BEISPIEL 3

C:\PS>$events = get-eventlog -logname system -newest 1000

C:\PS> $events | foreach-object -begin {get-date} -process {out-file -filepath events.txt -append -inputobject $_.message} -end {get-date}

Beschreibung
-----------
Mit diesem Befehl werden die 1000 letzten Ereignisse aus dem Systemprotokoll abgerufen und in der Variablen "$events" gespeichert. Anschließend werden die Ereignisse über die Pipeline an das Cmdlet "ForEach-Object" übergeben. Der Begin-Parameter zeigt das aktuelle Datum und die aktuelle Uhrzeit an. Anschließend erstellt der Process-Parameter mit dem Cmdlet "Out-File" eine Textdatei mit dem Namen "events.txt" und speichert die Message-Eigenschaft der einzelnen Ereignisse in dieser Datei. Schließlich werden nach Abschluss der gesamten Verarbeitung mit dem End-Parameter das Datum und die Uhrzeit angezeigt.

# BEISPIEL 4

C:\PS>get-itemproperty -path hkcu:\Network\* | foreach-object {set-itemproperty -path $_.pspath -name RemotePath -value $_.RemotePath.ToUpper();}

Beschreibung
-----------
Dieser Befehl ändert den Wert des Registrierungseintrags "RemotePath" in allen Unterschlüsseln unter dem Schlüssel "HKCU:\Network" in Großbuchstaben. Mit diesem Format kann Form oder Inhalt von Werten in der Registrierung geändert werden.

Jeder Unterschlüssel im Schlüssel "Network" stellt ein zugeordnetes Netzlaufwerk dar, für das bei der Anmeldung erneut eine Verbindung hergestellt wird. Der RemotePath-Eintrag enthält den UNC-Pfad des verbundenen Laufwerks. Wenn Sie \\Server\Share beispielsweise das Laufwerk "E:" zuordnen, weist "HKCU:\Network" einen Unterschlüssel für das Laufwerk "E:" auf, und der Wert des Registrierungseintrags "RemotePath" im Unterschlüssel von "E:" lautet "\\Server\Share".

Mit dem Cmdlet "Get-ItemProperty" werden vom Befehl alle Unterschlüssel des Schlüssels "Network" abgerufen, und mit dem Cmdlet "Set-ItemProperty" wird der Wert des Registrierungseintrags "RemotePath" in den einzelnen Schlüsseln geändert. Im Befehl "Set-ItemProperty" entspricht der Pfad dem Wert der Eigenschaft "PSPath" des Registrierungsschlüssels. (Dies ist eine Eigenschaft des Microsoft .NET Framework-Objekts, das den Registrierungsschlüssel darstellt; es handelt sich nicht um einen Registrierungseintrag.) Der Befehl verwendet die ToUpper()-Methode des RemotePath-Werts. Dabei handelt es sich um eine Zeichenfolge (REG_SZ).

Da Set-ItemProperty die Eigenschaft aller Schlüssel ändert, ist das Cmdlet "ForEach-Object" erforderlich, um auf die Eigenschaft zuzugreifen.

VERWANDTE LINKS
Online version: http://go.microsoft.com/fwlink/?LinkID=113300 (möglicherweise auf Englisch)

C:\Windows>powershell get-help Where-Object -full

ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.

OS: Windows 10, 8.1, 8, 7, Vista / Windows Server 2016, 2012, 2008
»»»» ColorConsole





... Home  
... Impressum
... ColorConsole

... CMD
... Netsh-XP
... Netsh-7
... Netsh-Vista
... Powershell










Windows 10 download: Starter, Home (Basic Premium), Professional und Win 10 Ultimate!

... facebook.de
HTTP: ... PS_Windows/de/ForEach-Object.htm
0.077

Wie findet man die IP-Adresse von einer Website heraus!

 /

Open Personal Files Folder in Windows 10 current and all user, how to?

 /

Bluetooth-fähiges Gerät mit Windows-10 verbinden, wie kann man das?

 /

Das Auswerfen der VHD über den MS Explorer in Windows 8.1 / 10!

 /