Powershell Workflow, CSV Stapelverarbeitung Problem
Hallo,
ich nutze folgendes Skript:
Ich dachte eigentlich, dass man die Workflow Funktion so nutzen kann. Daher habe ich aus meinem eigentlichen Skript diesen parallelen Workflow gebastelt.
Beim Starten des Workflows erhalte ich folgende Fehlermeldung:
Google konnte mir leider nicht weiterhelfen.
Ich vermute, dass der Workflow so gar nicht funktionieren kann, da die Umwandlung vom Skript zu einem Workflow nicht so einfach zu handhaben ist. Möglich ist auch, dass er die Variablen nicht mehr erkennt. Ich komme leider nicht weiter. Auch nicht nach dem Lesen zahlreicher howtos und Workflow Tutorials.
Kann mir jemand bitte mein Skript so umbauen, dass es funktioniert und ggf. Kommentare hinzufügen, sodass ich verstehe was verändert wurde und wie es funktioniert?
Vielen Dank im Voraus.
VG
Rippchen
ich nutze folgendes Skript:
workflow TEST {
$folder = 'C:\Daten Bearbeitung\Import'
$out = 'C:\Daten Bearbeitung\Export\Gesamte Daten.csv'
gci $folder -Filter *.csv -recurse | %{
$raw = ((gc $_.FullName) | select -Skip 7)
$csv = $raw[0..($raw.GetUpperBound(0)-1)]| ConvertFrom-CSV -Delimiter ";" -Header "Car","ID","TimeStamp","Note","PublicationTimeStamp","ModificationTimeStamp"
parallel {
$csv | %{$_."TimeStamp" = get-date $_."Timestamp" -Format 'dd-MM-yyyy HH:mm:ss'}
$csv | %{$_."PublicationTimeStamp" = get-date $_."PublicationTimeStamp" -Format 'dd-MM-yyyy HH:mm:ss'}
$csv | %{$_."ModificationTimeStamp" = get-date $_."ModificationTimeStamp" -Format 'dd-MM-yyyy HH:mm:ss'}
}
$csv | export-csv $out -Append -Delimiter ";" -Notype -Encoding UTF8
}
}
Ich dachte eigentlich, dass man die Workflow Funktion so nutzen kann. Daher habe ich aus meinem eigentlichen Skript diesen parallelen Workflow gebastelt.
Beim Starten des Workflows erhalte ich folgende Fehlermeldung:
PS C:\Users\Laptop> test
Der Workflow "test" konnte nicht gestartet werden: Folgende Fehler traten bei der
Verarbeitung der Workflowstruktur auf:
'DynamicActivity': Überprüfungsfehler bei der privaten Implementierung von Aktivität
'1: DynamicActivity': [5, 1]: Unerwartetes Schlüsselwort "parallel".
In Zeile:418 Zeichen:21
+ ... throw (New-Object System.Management.Automation.ErrorRecor ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (System.Manageme...etersDictionary:PSB
oundParametersDictionary) , RuntimeException
+ FullyQualifiedErrorId : StartWorkflow.InvalidArgument
Google konnte mir leider nicht weiterhelfen.
Ich vermute, dass der Workflow so gar nicht funktionieren kann, da die Umwandlung vom Skript zu einem Workflow nicht so einfach zu handhaben ist. Möglich ist auch, dass er die Variablen nicht mehr erkennt. Ich komme leider nicht weiter. Auch nicht nach dem Lesen zahlreicher howtos und Workflow Tutorials.
Kann mir jemand bitte mein Skript so umbauen, dass es funktioniert und ggf. Kommentare hinzufügen, sodass ich verstehe was verändert wurde und wie es funktioniert?
Vielen Dank im Voraus.
VG
Rippchen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 320281
Url: https://administrator.de/forum/powershell-workflow-csv-stapelverarbeitung-problem-320281.html
Ausgedruckt am: 27.04.2025 um 14:04 Uhr
6 Kommentare
Neuester Kommentar

Freds löschen um sie dann wieder neu einzustellen damit sie oben erscheinen, damit erreichst du hier eher das Gegenteil 
Wenn du die Threads zu Workflows richtig gelesen hättest, hättest du deinen Fehler entdeckt.
Hier ein simpler Workflow mit einer parallel verarbeitenden Schleife
Du hast das oben komplett an der falschen Stelle platziert. Du willst ja über die CSV-Dateien eine Schleife bauen, und diese muss ja parallel laufen.
Btw. parallel in ein und dasselbe File zu schreiben wird fehlschlagen warum? das kannst du dir sicherlich selber schon denken...
Wenn du was fertiges haben willst: Für'n Fuffy mach ich dir das gerne.
Gruß
Wenn du die Threads zu Workflows richtig gelesen hättest, hättest du deinen Fehler entdeckt.
Hier ein simpler Workflow mit einer parallel verarbeitenden Schleife
workflow Test {
param([string[]]$computers)
foreach -parallel -throttle 5 ($computer in $computers){
$computer
}
}
Test -computers (1..100 | %{"Computer_$_"})
Btw. parallel in ein und dasselbe File zu schreiben wird fehlschlagen warum? das kannst du dir sicherlich selber schon denken...
Wenn du was fertiges haben willst: Für'n Fuffy mach ich dir das gerne.
Gruß
VG
Rippchen
Rippchen gönn ich mir jetzt :-PRippchen

wenn man es wie in dem Diagramm über einen Puffer regelt, der im Arbeitsspeicher liegt ?
Kann man machen, Kost halt einiges an Arbeitsspeicher.
Geht alles, du musst dich halt damit auseinandersetzen, von nix kütt halt nix 