Powershell Skript - Eigenleben

Mitglied: Forseti2003

Forseti2003 (Level 1) - Jetzt verbinden

2021/01/13 um 12:09 Uhr, 283 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 2021/01/13, 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 2021/01/13 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
2021/01/13 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
2021/01/13 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
Windows Tools
Jemand hat bereits Teams für Ihre Organisation eingerichtet (Microsoft Teams)
nachgefragt1 day agoQuestionWindows Tools7 Comments

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 ...

Telecommunication
Panasonic NS700 - Endgeräte klingeln nicht, bzw. Gespräche kommen nicht an
solved jensgebken1 day agoQuestionTelecommunication26 Comments

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
FabioST881 day agoGeneralInternet15 Comments

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 ...

Switches and Hubs
Kurioses Problem IP Adresse ändern am Cisco SG350 10p
solved Xaero19821 day agoQuestionSwitches and Hubs16 Comments

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

Windows Server
Migration v. Exchange 2010 SP3 RU30 auf Exchange 2019
Joka25061 day agoQuestionWindows Server9 Comments

Hallo, ich habe bereits die 2008R2 DCs gegen 2 2016Std. ausgetauscht, die Domänenfunktionsebene und die Gesamtstruktur v. 2003 erstmal auf 2008R2 angehoben. Aktuelle Situation ...

Windows Server
NET 4.8 Installation scheitert auf Server 2016
solved powerkeks1 day agoQuestionWindows Server13 Comments

Hallo, ich habe einen Server 2016 Essentials auf Blech zu laufen. Der update Stand ist aktuell. Das Gerät läuft bis dato unauffällig. Nun sollte ...

Routers & Routing
Erklärung zu diesen Geräten
Roadmax16 hours agoQuestionRouters & Routing7 Comments

Hallo Zusammen, bei uns war heute spontan das Internet weg und wir mussten die Carrier Geräte neu starten. Mir stellt sich die Frage, welches ...

Detection and blocking
GDATA oder Defender in MS W10-Umgebung?
winacker23 hours agoQuestionDetection and blocking7 Comments

Hallo, seit Jahren habe ich eine Firmenlizenz des GDATA-AV. Die ist nun wieder zur Verlängerung fällig und ich frage mich ob das noch Sinn ...