Die Zeichenfolge hat kein Abschlusszeichen - Batch mit mehrzeiligem Powershellbefehl
Hallo,
leider finde ich hier den Fehler nicht, in der Doku finde ich auch nichts. Wer kann mir auf die Sprünge helfen?
Schönen Abend,
leider finde ich hier den Fehler nicht, in der Doku finde ich auch nichts. Wer kann mir auf die Sprünge helfen?
set quelle=%userprofile%\Desktop\Testmuster\muster-2.csv
if exist "%quelle%" goto :prog1
if not exist "%quelle%" goto :EOF
:prog1
powershell -Executionpolicy ByPass -Command "$quelle = '$env:USERPROFILE\Desktop\Testmuster\muster-2.csv';$ziel = '$env:USERPROFILE\Desktop\Testmuster\muster.txt';$csvdata = Import-csv $quelle -Delimiter ';' -Encoding Default;($csvdata | %%{"$($_.'Vorname');$($_.'Name');$($_.'Anschrift');$($_.'neue Plz');$($_.'neuer Ort');"}) -join "" | set-content $ziel
Schönen Abend,
Please also mark the comments that contributed to the solution of the article
Content-Key: 341618
Url: https://administrator.de/contentid/341618
Printed on: April 19, 2024 at 00:04 o'clock
11 Comments
Latest comment
Habe ich gerade erst in folgendem Thread beantwortet
Werte aus CSV in TXT - Powershell
Tipp: Doppelte Anführungszeichen innerhalb von doppelten sind mit Backslash zu "escapen".
Außerdem fehlt dir zusätzlich das "Abschließende" davon
Gruß
Werte aus CSV in TXT - Powershell
Tipp: Doppelte Anführungszeichen innerhalb von doppelten sind mit Backslash zu "escapen".
Außerdem fehlt dir zusätzlich das "Abschließende" davon
Gruß
Selbstverständlich, wenn man mal logisch mitdenkt, und das gilt für die meisten Skript/Programmiersprachen. Denn sonst würde Batch denken das der PS Command hinter dem -join aufhört, soll er ja aber nicht!
Tipp: In Powershell darfst du ja Hochkommas als Stringbegrenzer nutzen, wenns geht, und du keine Variablen im String auflösen musst, also stattdessen diese nutzen:
-join ''
Nö, das tut es nicht, les meinen letzten Post noch mal ganz pingelig in Bezug auf die Variablenauflösung innerhalb von einfachen Hochkommatas! Dann weißt du wieso das so nicht funktionieren kann...
Schade, da schreibt man das extra alles hin, aber keiner liest es , einfach nur arm...
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\""
Schade, da schreibt man das extra alles hin, aber keiner liest es , einfach nur arm...
Hallo, ich bin neu hier und habe gerade diesen Eintrag von Dir, BibersBaum gefunden,vorher hatte ich mich durch die Doku gekämpft und dann das hier gelesen - die Rettung.
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.
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.