drachenbaby11997
Goto Top

Powershell csv Dateien in einem Ordner als geopkg speichern

Hallo, ich bin ganz neu auf der Plattform dabei und auch auch erst ganz neu mit dem Umgang von Powershell also seid bitte nachsichtig mit mir face-smile

Mein ziel ist es aus einem Ordner Daten auf meinem D Laufwerk mehrere csv Dateien als geopkg Dateien im Order ausgabe auch auf D abzuspeichern. Hierfür hatte ich folgendes Skript geschrieben. Allerdings bekomm ich es nicht zum Laufen. Vielleicht kann mir ja jemand weiterhelfen und sagen, ob der Code so überhaupt funktionieren kann. Vielleicht hat ja aber auch jemand eine andere Idee.

$folder_csv = Get-Content -path "D:\Daten"              
$folder_fileout = 'D: \ausgabe'                           

$files = Get-ChildItem $folder_csv -File -Filter *csv
foreach ($file in $files) {
    $newFileName = $file.Name.Replace("csv","geopkg")  
    Rename-Item $file $newFileName
}

Für Eure Hilfe bin ich sehr dankbar.

Freundliche Grüße

Content-ID: 7106311340

Url: https://administrator.de/forum/powershell-csv-dateien-in-einem-ordner-als-geopkg-speichern-7106311340.html

Ausgedruckt am: 19.03.2025 um 10:03 Uhr

7010350221
Lösung 7010350221 11.05.2023 aktualisiert um 08:48:17 Uhr
Goto Top
Hi.
Nee das klappt so nicht wenn du die Ordner-Angabe mit Get-Content verschnabulierst
$folder_csv = 'D:\Daten'  
$folder_fileout = 'D:\ausgabe'  
Get-ChildItem $folder_csv -File -Filter *.csv | copy-item -Destination {"${folder_fileout}\$($_.Name -replace '\.csv$','.geopkg')"} -verbose  
Gruß
drachenbaby11997
drachenbaby11997 11.05.2023 um 08:51:08 Uhr
Goto Top
Danke für deine schnelle Hilfe. Schau mir das direkt mal an.
Hab aber als Alternative auch noch diese Option gefunden, die ich auch ausführen konnte:

PS D:\Daten> Get-ChildItem D:\Daten -Filter "*.csv*" -Recurse | Rename-Item -NewName {$_.name-replace '.csv', '.geopkg'}
7010350221
7010350221 11.05.2023 aktualisiert um 08:58:46 Uhr
Goto Top
{$_.name -replace '.csv', '.geopkg'}
Achtung bei -replace wird RegularExpression Syntax im ersten Parameter verwendet, ein Punkt steht für ein beliebiges Zeichen, es könnte also etwa auch der Inhalt fcsv usw. an beliebiger Stelle im Dateinamen ersetzt werden werden! Möchte man einen Punkt matchen muss man ihn mit Backslash escapen! Siehe meine Variante oben die ist diesbezüglich wasserdicht und ersetzt auch nur am Ende des Dateinamens.

Was zum lesen über Regex, für verregnete Mai Tage ...
https://danielfett.de/2006/03/20/regulaere-ausdruecke-tutorial/
drachenbaby11997
drachenbaby11997 11.05.2023 um 09:14:52 Uhr
Goto Top
Vielen Dank für deine gute Erklärung!
drachenbaby11997
drachenbaby11997 17.05.2023 um 08:01:22 Uhr
Goto Top
Kannst du mir zufällig auch beantworten, wie ich diese Batch

.\\qgis_process-qgis.bat run native:createpointslayerfromtable --TARGET_CRS="EPSG:4326" --INPUT="Z:\\Eingabedaten\testversuch_new.csv" --XFIELD="geometry_longitude" --YFIELD="geometry_latitude" --OUTPUT="H:\\ergenis.gpkg"

noch zusätzlich ausführen kann?
7010350221
7010350221 17.05.2023 aktualisiert um 10:55:59 Uhr
Goto Top
start "cmd" -wait -Argumentlist '/c "C:\Pfad\zur\qgis_process-qgis.bat" run native:createpointslayerfromtable --TARGET_CRS="EPSG:4326" --INPUT="Z:\\Eingabedaten\testversuch_new.csv" --XFIELD="geometry_longitude" --YFIELD="geometry_latitude" --OUTPUT="H:\\ergenis.gpkg"'  
drachenbaby11997
drachenbaby11997 17.05.2023 um 09:45:29 Uhr
Goto Top
Bekomm mein Problem leider nicht gelöst, dir trotzdem ein riesen Dank für die schnelle Hilfe und deine Zeit face-smile
7010350221
7010350221 17.05.2023 aktualisiert um 09:47:24 Uhr
Goto Top
Zitat von @drachenbaby11997:

Bekomm mein Problem leider nicht gelöst, dir trotzdem ein riesen Dank für die schnelle Hilfe und deine Zeit face-smile
???

Thread done. New question new thread.
drachenbaby11997
drachenbaby11997 17.05.2023 um 09:58:41 Uhr
Goto Top
Also ich hab einen Ordner D:/Daten in dem ich mein csv Dateien hab und möchte diese mit der Umwandlung aus dieser Batch

D:\QGIS-PORTABLE\QGIS-PORTABLE\bin\qgis_process-qgis.bat run native:createpointslayerfromtable --TARGET_CRS="EPSG:4326" --INPUT="Z:\04 EA Daten\Datenbereitstellung\12345_Nachbereitung_new.csv" --XFIELD="geometry_longitude" --YFIELD="geometry_latitude" --OUTPUT="H:\test.gpkg"

verändern und danach die .csv Dateien als .gpkg in D:/ausgabe speichern..
7010350221
7010350221 17.05.2023 um 10:55:19 Uhr
Goto Top
$folder_csv = 'Z:\04 EA Daten\Datenbereitstellung'  
$folder_fileout = 'D:\ausgabe'  
foreach($file in Get-ChildItem $folder_csv -File -Filter *.csv){
    start "cmd.exe" -wait -Argumentlist "/c `"D:\QGIS-PORTABLE\QGIS-PORTABLE\bin\qgis_process-qgis.bat`" run native:createpointslayerfromtable --TARGET_CRS=`"EPSG:4326`" --INPUT=`"$($file.Fullname)`" --XFIELD=`"geometry_longitude`" --YFIELD=`"geometry_latitude`" --OUTPUT=`"${folder_fileout}\$($file.Basename).gpkg`""  
}
drachenbaby11997
drachenbaby11997 17.05.2023 um 13:06:21 Uhr
Goto Top
Start-Process : Es wurde kein Positionsparameter gefunden, der das Argument "geometry_longitude --YFIELD=geometry_latitude --OUTPUT="D:\ausgabe\_35676408527162.gpkg"" akzeptiert.
In D:\Unbenannt5.ps1:5 Zeichen:5

back-to-topstart "cmd.exe" -wait -Argumentlist "/c `"D:\QGIS-PORTABLE\QGIS-P ...

back-to-top~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidArgument: ( : ) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
7010350221
7010350221 17.05.2023 aktualisiert um 16:18:06 Uhr
Goto Top
Escaping war nicht vollständig, behoben ...
drachenbaby11997
drachenbaby11997 23.05.2023 um 10:33:54 Uhr
Goto Top
Programm läuft aber bekomme einfach keine neuen Dateien in den ausgabe Ordner..