pps4535
Goto Top

Powershell - if Bedingung

Moin, moin,..

ich dachte ich mal einen neuen Thread auf, damit es geordnet abläuft face-smile

Hier habe ich schon einmal gepostet, aber noch keine hilfreiche Antwort:
Die Zeichenfolge hat kein Abschlusszeichen - Batch mit mehrzeiligem Powershellbefehl

Ergebniscode aus dem Thread:
powershell -Executionpolicy ByPass -Command "((Import-CSV \"$env:USERPROFILE\Desktop\Testmuster\muster-2.csv\" -Delimiter ';' -Encoding Default) | %%{\"$($_.'Vorname');$($_.'Name');$($_.'Anschrift');$($_.'neue Plz');$($_.'neuer Ort')\"}) -join '' | set-content \"$env:USERPROFILE\Desktop\Testmuster\muster.txt\""  

Bei meiner Ausgangs CSV kann das sein, dass bsp. 'neuer Ort' oder 'neues Land' nur manchmal vorhanden ist - warum auch immer.

Jetzt würde ich gerne, damit auch ich den Code nutzen kann, gerne folgendes versuchen:

Wenn in der Spalte 'neues Land' eines vorhanden ist, nehme das, sonst (wenn keines vorhanden) schreibe 'Deutschland' als Standardwert.

Content-Key: 341860

Url: https://administrator.de/contentid/341860

Printed on: April 19, 2024 at 20:04 o'clock

Mitglied: 133417
Solution 133417 Jun 28, 2017 updated at 07:54:56 (UTC)
Goto Top
ich dachte ich mal einen neuen Thread auf, damit es geordnet abläuft
Danke. Fremde Threads übernehmen kommt nämlich nicht so gut, deswegen keine Antwort.
powershell -Executionpolicy ByPass -Command "((Import-CSV \"$env:USERPROFILE\Desktop\Testmuster\muster-2.csv\" -Delimiter ';' -Encoding Default) | %%{\"$($_.'Vorname');$($_.'Name');$($_.'Anschrift');$($_.'neue Plz');$(@{$true=$_.'neues Land';$false='Deutschland'}[($_.'neues Land' -ne '')])\"}) -join '' | set-content \"$env:USERPROFILE\Desktop\Testmuster\muster.txt\""  
Gruß
Mitglied: 133417
133417 Jun 28, 2017 at 12:15:32 (UTC)
Goto Top
Dann bitte noch How can I mark a post as solved? nicht vergessen.
Member: pps4535
pps4535 Jun 28, 2017 at 15:50:49 (UTC)
Goto Top
Danke,

"$env:USERPROFILE\Desktop\Testmuster\muster.txt\""  

kann das sein, dass PS mit muster-%date%-%time%.txt Schwierigkeiten hat? Wenn ich die Uhrzeit in HHMMSS ausgeben möchte?
Mitglied: 133417
133417 Jun 28, 2017 updated at 15:58:55 (UTC)
Goto Top
%time% enthält Doppelpunkte, und das sind Zeichen für einen Dateinamen die nicht erlaubt sind. Mach es gleich mit Powershell.
\"$env:USERPROFILE\Desktop\Testmuster\muster-$(get-date -f yyyyMMdd-HHmmss).txt\""