freshman2017
Goto Top

Bestimmte Spalten aus TXT in CSV kopieren - ab Spalte AE gibt es Übertragungsfehler

Hallo,

ich versuche mit nachfolgendem Batch Spalten in TXT zu übernehmen.
Wenn ich die Spalte %%ae übernehmen möchte, gibt er diese nicht mit aus.
Kann mir jemand verraten, woran es liegt?

@echo off &setlocal
set "quelle=%userprofile%\Desktop\csv--%Date%.csv"  
set "ziel=%userprofile%\Desktop\csv--%Date%.txt"  
>>"%ziel%" (for /f "usebackq skip=1 delims=;" %%a in ("%quelle%") DO <nul set /p "=%%a;%%ae;1;")  

Content-ID: 339555

Url: https://administrator.de/forum/bestimmte-spalten-aus-txt-in-csv-kopieren-ab-spalte-ae-gibt-es-uebertragungsfehler-339555.html

Ausgedruckt am: 09.04.2025 um 23:04 Uhr

133417
133417 01.06.2017 um 16:01:57 Uhr
Goto Top
Es gibt nur a-z und A-Z :-P, das ist kein Excel face-big-smile

Gruß v.
freshman2017
freshman2017 01.06.2017 um 16:06:46 Uhr
Goto Top
Gibt es da mit Powershell nen Lösungsansatz?
133417
133417 01.06.2017 aktualisiert um 20:36:35 Uhr
Goto Top
Klar, Import-CSV ...
$csvobject = Import-CSV 'c:\myfile.csv' -delimiter ';'  
$csvobject | %{
    $_.'Spaltenname'  
}
Hier lesen
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powe ...

Irgendwie sind sich diese beiden Threads sehr ähnlich ...
TXT Datei bleibt nach Erstellung leer - woran liegt es?
Woher das wohl kommen mag face-smile.
freshman2017
freshman2017 02.06.2017 um 15:25:56 Uhr
Goto Top
Zitat von @133417:

Klar, Import-CSV ...
> $csvobject = Import-CSV 'c:\myfile.csv' -delimiter ';'  
> $csvobject | %{
>     $_.'Spaltenname'  
> }
> 
Hier lesen
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powe ...

Ich verwende ich jetzt nachfolgenden Code, jedoch erscheint in der neuen CSV die Spalten nicht mehr so, wie in der Quell-CSV - wie kann ich denn dass die Spalten ggfls. sortiert sind? Erst 1_ dann 2_ dann 3_ dann 4_ usw.

powershell -Executionpolicy ByPass -Command "$newcsv = @();import-csv   
$env:USERPROFILE\Desktop\Test\csv_%Date%.csv -Delimiter ';' |   
%%{$newcsv += New-Object PSObject -Property @{'2_Test1'=$_.Test1;'1_Test2'=$_.'Test2';'3_Test3'=$_.'Test3'}};  
$newcsv | Export-Csv $env:USERPROFILE\Desktop\Test\csv-cm_%Date%.csv -Delimiter ';' -NoTypeInformation -Encoding Default"  
133417
Lösung 133417 02.06.2017 um 18:34:19 Uhr
Goto Top
Nutze eine [ordered] Hashtable face-wink
%%{$newcsv += [pscustomobject] ([ordered] @{'2_Test1'=$_.Test1;'1_Test2'=$_.'Test2';'3_Test3'=$_.'Test3'})};  
oder schiebe ein select mit dem Spalten in der gewünschten Reihenfolge hinterher.
freshman2017
freshman2017 02.06.2017 um 20:06:56 Uhr
Goto Top
Hi,
ich hatte es gerade mal mit:

powershell -Executionpolicy ByPass -Command "$newcsv = @();import-csv $env:USERPROFILE\Desktop\Test\test.csv -Delimiter ';' | %%{$newcsv += [pscustomobject] {[ordered] @{'2_Test1'=$_.Test1;'1_Test2'=$_.'Test2';'3_Test3'=$_.'Test3'})};$newcsv | Export-Csv $env:USERPROFILE\Desktop\Test\test-1.csv -Delimiter ';' -NoTypeInformation -Encoding Default"  

getestet, funktioniert aber nicht und ich finde den Fehler nicht.
133417
133417 02.06.2017 aktualisiert um 20:11:02 Uhr
Goto Top
Du hast eine "geschweifte" Klammer hinter [pscustomobject] zu viel face-wink das muss eine "normale" Klammer sein!
Siehst du ja oben ...
freshman2017
freshman2017 02.06.2017 um 20:17:54 Uhr
Goto Top
Jetzt muss ich doch nochmal nachfragen:

Batch angepasst:

powershell -Executionpolicy ByPass -Command "$newcsv = @();import-csv $env:USERPROFILE\Desktop\Test\test.csv -Delimiter ';' | %%{$newcsv += [pscustomobject] ([ordered] @{'2_Test1'=$_.Test1;'1_Test2'=$_.'Test2';'3_Test3'=$_.'Test3'})};$newcsv | Export-Csv $env:USERPROFILE\Desktop\Test\test-1.csv -Delimiter ';' -NoTypeInformation -Encoding Default"  

.csv:
Test2;Test5;Test1;Test3

Leider bleibt meine test-1.csv leer..

VG
133417
133417 02.06.2017 aktualisiert um 20:27:38 Uhr
Goto Top
Kein Wunder, deine CSV hat ja überhaupt keine Spaltenüberschriften .... Wo bitte sollte also $_.Spalte1 , $_.Spalte2 usw. herkommen face-big-smile, aus der Glaskugel?!

Liest denn hier keiner mehr irgendeine Anleitung ???!!!

Holla die Waldfeh, lass es Hirn regnen ...