Powershell Skript - Eigenleben

Mitglied: Forseti2003

Forseti2003 (Level 1) - Jetzt verbinden

13.01.2021 um 12:09 Uhr, 281 Aufrufe, 4 Kommentare

Ein Hallo in die Runde,

ich hab da eine Frage zu PowerShell. Folgendes Szenario: Ich erhalte eine XML-Datei die ich in CSV konvertieren möchte. Entsprechend hab ich das Skript aufgebaut. Nun passieren aber ein paar Eigenartigkeiten in dem Skript.

1) Ist die Powershell gestartet und ich tausch die Datei zum konvertieren aus (XML1 zu XML2), erzeugt er mir als CSV auch die XML1 obwohl diese nicht mehr im Verzeichnis ist. Starte ich die ISE neu, macht er es richtig.

2) Liegt eine Datei drin, passiert es recht häufig das er diese nicht konvertiert, erst wenn ich den Ausführen Button 2-3x betätigt habe, legt er los

Das Skript selbst sieht so aus:

Liegt das Verhalten am Skript selbst oder mach ich mit der ISE da etwas verkehrt?

Grüße
Forseti
Mitglied: 147069
147069 (Level 1)
LÖSUNG 13.01.2021, aktualisiert um 12:47 Uhr
Liegt das Verhalten am Skript selbst
Ja, erstens fehlen einige Variablen fehlen/sind bei dir nicht definiert und liegen noch als Cache im Speicher der ISE. In der ISE muss man immer dafür sorgen das Variablen bei jedem Aufruf des Skripts auch wieder richtig initialisiert(mit aktuellen Werten versehen) werden. Vergisst man das könnten darin noch alte Werte vom vorherigen Ausführen liegen.

Btw, es gibt mit Powershell viel effektivere Methoden eine CSV zu erzeugen als die Strings aneinander zu pappen und wegzuschreiben. Für sowas erstellt man optimalerweise ein Custom-Object und leitet das an Export-CSV.

Ich würde das so ordentlicher strukturieren
Bitte warten ..
Mitglied: tagol.de
LÖSUNG 13.01.2021 um 12:18 Uhr
Zitat von Forseti2003:
1) Ist die Powershell gestartet und ich tausch die Datei zum konvertieren aus (XML1 zu XML2), erzeugt er mir als CSV auch die XML1 obwohl diese nicht mehr im Verzeichnis ist. Starte ich die ISE neu, macht er es richtig.

bekanntes problem von ISE

siehe loesung: ise variablen
Bitte warten ..
Mitglied: Forseti2003
13.01.2021 um 13:28 Uhr
Danke für den Hinweis, ist mir früher nie aufgefallen, hab daher gedacht es liegt eher am Skript. Aber Super, mit der Variable klappt es jetzt wie gewollt.
Bitte warten ..
Mitglied: Forseti2003
13.01.2021 um 13:30 Uhr
Zitat von 147069:

Liegt das Verhalten am Skript selbst
Ja, erstens fehlen einige Variablen fehlen/sind bei dir nicht definiert und liegen noch als Cache im Speicher der ISE. In der ISE muss man immer dafür sorgen das Variablen bei jedem Aufruf des Skripts auch wieder richtig initialisiert(mit aktuellen Werten versehen) werden. Vergisst man das könnten darin noch alte Werte vom vorherigen Ausführen liegen.


Die Variablen-Deklaration hatte ich jetzt hier im Beitrag weggelassen, sorry mein Fehler.

Btw, es gibt mit Powershell viel effektivere Methoden eine CSV zu erzeugen als die Strings aneinander zu pappen und wegzuschreiben. Für sowas erstellt man optimalerweise ein Custom-Object und leitet das an Export-CSV.

Ich würde das so ordentlicher strukturieren

Da hast Du Recht - vielen Dank für den Hinweis, das man die Struktur so erstellen kann, war mir noch nicht bekannt, ist aber wirklich deutlich eleganter. Vielen Dank.
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
HomeOffice Pflicht - Büroaustattung vom Arbeitgeber?
h45okeg493sVor 1 TagFrageOff Topic37 Kommentare

Hallo zusammen, aufgrund der HomeOffice Situation wollte ich mal rumfragen, muss der Arbeitgeber neben der Hardware wie Notebook, etc. auch Büroausstattung wie Bürostühle zur ...

Server-Hardware
Gebrauchte Server von eBay-Kleinanzeigen
gelöst dh2411Vor 1 TagFrageServer-Hardware16 Kommentare

Hallo zusammen, neulich war ich auf eBay-Kleinanzeigen unterwegs und dort wurden mir einige Server vorgeschlagen. Ich habe dort auch meinen aktuellen Home-Server recht günstig ...

Backup
Backupmöglichkeit Teamviewer
gelöst greenhorn1Vor 1 TagFrageBackup18 Kommentare

Hallo, ich habe bei meiner Teamviewer Lizenz die Möglichkeit ein Backup des PC´s durchzuführen. Leider funktioniert das nicht! Nach Rückfrage an Teamviewer erhielt ich ...

Grafikkarten & Monitore
Zweiter Bildschirm geht sporadisch immer aus?!
GeronimooVor 1 TagFrageGrafikkarten & Monitore8 Kommentare

Moin zusammen, ich habe ein Problem mit meinem 2. Monitor und zwar geht dieser sporadisch immer für 1-2 Sekunden aus oder flackert ein bisschen ...

Windows Tools
Jemand hat bereits Teams für Ihre Organisation eingerichtet (Microsoft Teams)
nachgefragtVor 1 TagFrageWindows Tools6 Kommentare

Hallo Administratoren, bevor ich weiß, dass Internet ist voll davon, daher darf ich es kurz machen: Problem Wir nutzten ausschließlich die kostenlose Variante von ...

Switche und Hubs
Kurioses Problem IP Adresse ändern am Cisco SG350 10p
gelöst Xaero1982Vor 1 TagFrageSwitche und Hubs16 Kommentare

Moin Zusammen, ich habe hier einen neuen Cisco SG350 10p. Wie schon so oft wollte ich ihm eine neue IP geben, also gehe ich ...

TK-Netze & Geräte
Panasonic NS700 - Endgeräte klingeln nicht, bzw. Gespräche kommen nicht an
gelöst jensgebkenVor 1 TagFrageTK-Netze & Geräte24 Kommentare

Hallo Gemeinschaft, nun habe ich mir für meine gebrauchte Anlage doch noch eine gebrauchte BRI gekauft - Installation klappte soweit auch - raustelefonieren kann ...

Internet
TV-Anschluss zu DSL Anschluss
FabioST88Vor 1 TagAllgemeinInternet12 Kommentare

Hallo zusammen, ich bin vor kurzer Zeit in eine kleine Wohnung gezogen und habe nur einen TV-Anschluss sprich das runde Kabel. Leider kenne ich ...