PowerShell - Aufzählung durch eine Sammlung und Ändern der Sammlung

7

Wie ist es möglich, dieses Skript zu reparieren?

Ja, ich ändere die Sammlung in der foreach-Schleife und das ist der Grund für diesen Fehler.

Beim Aufzählen durch eine Sammlung ist ein Fehler aufgetreten: Sammlung wurde geändert; Aufzählungsoperation kann nicht ausgeführt werden .. Unter C: \ Benutzer \ Benutzer \ Dokumente \ PowerShell \ ChangeAllListsV2.ps1: 47 Zeichen: 20 + foreach & lt; & lt; & lt; & lt; ($ list in $ webLists)     + CategoryInfo: InvalidOperation: (Microsoft.Share ... on + SPENumerator: SPEnumerator) [], RuntimeException     + FullyQualifiedErrorId: BadEnumeration

%Vor%     
LaPhi 25.01.2012, 15:31
quelle

3 Antworten

20

SPListCollection neigt dazu, die Sammlung zu ändern, wenn sie ihre Eigenschaften aktualisiert (Felder, Ereignisempfänger usw.). Sie können stattdessen eine for-Schleife verwenden:

%Vor%     
Stefan 25.01.2012, 15:47
quelle
3

Sie können versuchen, die Sammlung, die Sie gerade durchlaufen, in eine andere Sammlung (ein Array oder eine Liste) zu kopieren und dann auf diese neue Sammlung zu iterieren.

In etwa so:

%Vor%

Der obige Code gibt die folgende Ausgabe aus:

%Vor%

Beachten Sie, dass sich die Variable $copy auf eine andere Sammlung bezieht.

    
Gebb 25.01.2012 15:39
quelle
0

Überprüfen Sie: Ссылка

Hier ist ein weiteres Beispiel für dasselbe Problem

%Vor%

zum ersten Mal wird es durch die Schleife gehen foreach wird unterstützte Kultur für die erste Zeit entfernen, wenn es für die zweite Iteration Schleife kommt, dann wird es die Ausnahme werfen "Sammlung wurde geändert; Aufzählungsoperation kann nicht ausgeführt werden ",

Lösung zu oben Problem ist, zu Werten zu speichern, um in einem Arraylist zu ändern und zu versuchen, zu modifizieren, die das Problem beheben werden, hier speichere ich Arraylist genanntes enumcul und füge Werte in es ein und modifiziere es ...

%Vor%     
Soreddy Manjunath 03.07.2014 04:16
quelle

Tags und Links