Jump to content

jschmidt

Members
  • Gesamte Inhalte

    10
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von jschmidt

  1. 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 
    }

     

  2. 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 :ohje:. 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 :rofl:

     

  3. 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 :grins2: 

  4. 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! :achtung:;-)   

    Es soll die Header-Zeile entfernt werden... Mit get-Content hab ich es leider in der Schleife auch nicht hinbekommen, deshalb hab ich rumgespielt :lool: Ich bin mir nichtmal sicher, ob das noch irgendeinen Sinn hat was ich gebastelt habe :lol2:

  5. 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 :smile2:

     

  6. 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

×
×
  • Neu erstellen...