jschmidt
-
Gesamte Inhalte
10 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von jschmidt
-
-
Super vielen Dank schonmal für die Hilfe!
Könnt ihr nochmal drüber schauen, ob das was ich gemacht habe soweit passt? Nicht dass ich irgendwo einen Denkfehler drin hab. Soweit funktioniert es jetzt aber...
$folder_csv = 'C:\Install\Impfschrank\Import' $backupfolder = 'C:\Install\Impfschrank\Import\Backup' $importfolder ='C:\Install\Impfschrank\Import\Import-enaio\' Copy-Item -Path C:\Install\Impfschrank\Import\*csv -Destination $backupfolder -Exclude C:\Install\Impfschrank\Import $fileList = Get-ChildItem -Path $folder_csv -Filter *.csv -File foreach ($file in $fileList) { $csv = Import-Csv $file.FullName $csv | Export-Csv -Delimiter ';' -NoTypeInformation $importfolder$file } Remove-Item $folder_csv\*.csv $fileList2 = Get-ChildItem -Path $importfolder -Filter *.csv -File foreach ($file in $fileList2) { $NewContent = Get-Content $file.FullName | Select-Object -Skip 1 $NewContent | Out-File -FilePath $file.FullName -Force -Encoding Default }
-
Leider werde ich es erstmal selbst angehen müssen, bis die was umsetzten könnten Monate vergehen... Ich werde das denen aber gleich mal melden. Wie könnt ich das denn in mein Skript mit einbauen?
Ja, wenn ich das Komma manuell entferne läuft der Import komplett durch...
-
Es handelt sich um Enaio, ein DMS... die Fehlermeldung lautet "Der Datensatz 8 enthält zu viele Feldwerte. (-983432381), Der Import ist fehlgeschlagen: " und tritt nur bei dem Datensatz mit dem Komma in der Datenzelle auf... alle anderen Datensätze können importiert werden
-
Ja es ist alles in Anführungszeichen aber mein Programm, welches die Dateien dann importiert beschwert sich es wären zu viele Spalten... Da interessieren die " wohl nicht
So steht es in der csv: ,"Herr","Christoph, Dr.",
-
Jetzt hat sich leider noch ein weiteres Problem ergeben, die Dateien die wir erhalten sind mit "," getrennt und leider gibt es natürlich in der Dateneingabe auch Kommas . Mit einem - replace in der Schleife habe ich es leider nicht hinbekommen und auch eine separate foreach Schleife hat nicht funktioniert...
So Sieht mein Skript aktuell aus:
$folder_csv = 'C:\Install\Impfschrank\Import' $backupfolder = 'C:\Install\Impfschrank\Import\Backup' Copy-Item -Path C:\Install\Impfschrank\Import\*csv -Destination $backupfolder -Exclude C:\Install\Impfschrank\Import $fileList = Get-ChildItem -Path $folder_csv -Filter *.csv -File foreach ($file in $fileList) { $NewContent = Get-Content $file.FullName | Select-Object -Skip 1 $NewContent | Out-File -FilePath $file.FullName -Force -Encoding default }
Kann man die enthaltenen Kommas entfernen oder sogar auf ein anderes Trennzeichen umstellen?
vor 16 Stunden schrieb BOfH_666:Nur zur Info: Es ist nicht nötig, jedes Mal den kompletten Beitrag, auf den Du antwortest, zu zitieren. Wenn Du Dich nicht auf etwas Spezifisches aus dem Beitrag beziehen willst, lass das Zitat einfach weg.
Kuck ich bin lernfähig
-
vor 56 Minuten schrieb BOfH_666:
Im einfaschte Fall sollte es das hier bringen:
$folder_csv = 'C:\Install\Import' $fileList = Get-ChildItem -Path $folder_csv -Filter *.csv -File foreach ($file in $fileList) { $NewContent = Get-Content $file.FullName | Select-Object -Skip 1 $NewContent | Out-File -FilePath $file.FullName -Force }
Super vielen Dank, hat super funktioniert
-
vor 1 Minute schrieb BOfH_666:
Willst Du jeweils die Header-Zeile entfernen oder die erste Daten-Zeile? In dem Beispiel in Deinem ersten Beitrag wird Get-Content bentutz und Du benutzt scheinbar Import-Csv. Das hat - wie zu erwarten - unterschiedliche Ergebnisse zur Folge!
Es soll die Header-Zeile entfernt werden... Mit get-Content hab ich es leider in der Schleife auch nicht hinbekommen, deshalb hab ich rumgespielt Ich bin mir nichtmal sicher, ob das noch irgendeinen Sinn hat was ich gebastelt habe
-
vor 2 Minuten schrieb cj_berlin:
Was hast Du denn schon versucht?
EDIT: Und bitte Code als Code posten!
$folder_csv = 'C:\Install\Import' $folder_fileout = 'C:\Install\Import-enaio' $files = Get-ChildItem $folder_csv -File -Filter *.csv foreach ($file in $files) { $name = $(ls) $data = Import-csv $($file.Fullname) -Delimiter "," $data | Select-Object -Skip 1 $data | export-csv "$folder_fileout\$name.csv" -delimiter "," -Encoding default }
Das habe ich versucht und viele Schritte dazwischen, es kann gut sein, dass ich es verschlimmbessert hab
-
Leider bin ich nicht Erfahren genug mit Powershell und finde im Internet auch keinen passenden Beitrag...
Ich muss von einem sFTP Server mehrmals täglich CSV Dateien abrufen (funktioniert bereits) und bearbeiten, damit ein anderes Programm diese dann wieder importieren kann. Dazu muss immer die erste Zeile gelöscht werden. Mit einer einzelnen Datei hab ich das auch schon hinbekommen...
$import = get-content 'C:\Install\User.csv'
$import | Select-Object -Skip 1 | Set-Content 'C:\Install\user.csv'Die heruntergeladenen Dateien haben immer unterschiedliche Namen und sollten dann auch noch in ein Backup-Verzeichnis kopiert werden (vor der Verarbeitung).
Leider bekomme ich die Schleife nicht gebaut um jede CSV in diesem Verzeichnis zu bearbeiten.
Vielen Dank schonmal für die Hilfe
Lieben Gruß
Johannes
Mehrere .csv Dateien mit Powershell bearbeiten uns speichern
in Windows Forum — Scripting
Geschrieben
Das sieht echt viel schöner aus, leider hab ichs damit nicht zum laufen gebracht... Jetzt bin ich aber erstmal froh das es überhaupt funktioniert, um die Feinheiten kümmere ich mich dann wenn alles läuft