philipes
Goto Top

Ordner überwachen, Inhalt der Datei ändern, Datei verschieben

Hallo,
ich habe eine Bitte an Euch.

Ich möchte einen Ordner überwachen und sobald eine Textdatei reinkommt, soll in dem Inhalt der Datei ein Zeichen "§" ins "|" geändert werden. Anschliessend soll die Datei in einen anderen Ordner verschoben werden.

Windows Powershell oder Batch. Was wäre das bessere vorgehen und wie?

Vielen lieben Dank.

Ich habe das versucht, aber es klappt nicht so wie es soll:

#script need to search in ersetzungspfad, then raplace and then write to new folder with same name but with end .txt and not .dat
$ersetzungspfad = "C:\Users\Lager\Desktop\Versanddaten\*.dat"
$Ausgabepfad = "C:\Users\Lager\Desktop\Versanddaten\pixi-import\*.txt"


foreach ($s in $search){
Get-ChildItem -Path $ersetzungspfad -Include *.DAT | Foreach-Object {Get-Content $_ | Out-String | Foreach-Object {$_.Replace(„§“,“|“)} | Out-File -FilePath $Ausgabepfad }

Content-Key: 665836

Url: https://administrator.de/contentid/665836

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: 148121
Lösung 148121 18.04.2021 aktualisiert um 11:59:55 Uhr
Goto Top
while($true){
    ls 'C:\Users\Lager\Desktop\Versanddaten' -File -Filter *.dat | %{  
        (gc $_.Fullname) -replace '§','|' | sc $_.Fullname  
        $_ | move-item -Destination "C:\Users\Lager\Desktop\Versanddaten\pixi-import\$($_.Name -replace '\.dat$','.txt')" -verbose  
    }
    sleep 5
}
Gruß w.
Mitglied: philipes
philipes 18.04.2021 aktualisiert um 13:05:15 Uhr
Goto Top
Hallo warranty.

erstmal danke sehr für Deine Antwort.
Ist es Batch oder Powershell und wie kann ich es starten damit der Script arbeitet und wie kann ich es stoppen?
Mitglied: philipes
philipes 18.04.2021 um 13:54:07 Uhr
Goto Top
Ich habe es ausgeführt und es funktioniert so wie ich es möchte.

Vielen Dank.
Mitglied: philipes
philipes 18.04.2021 um 14:10:28 Uhr
Goto Top
Hallo warranty,

ich habe noch eine Frage. Wie muss der Code aussehen, wenn es in der Datei noch folgendes geprüft und ergänzt werden soll:

Wenn "101" vorhanden, dann füge am ende der Zeile "123456" und wenn "5301" vorhanden dann füge am Ende der Zeile "654321"

Danke
Mitglied: 148121
148121 18.04.2021, aktualisiert am 19.04.2021 um 10:21:35 Uhr
Goto Top
while($true){
    ls 'C:\Users\Lager\Desktop\Versanddaten' -File -Filter *.dat | %{  
        $txt = gc $_.Fullname
        $txt = $txt -replace '§','|'  
        $txt = $txt -replace '(.*101.*)','$112345'  
        $txt = $txt -replace '(.*5301.*)','$1654321'  
        $txt | sc $_.Fullname
        $_ | move-item -Destination "C:\Users\Lager\Desktop\Versanddaten\pixi-import\$($_.Name -replace '\.dat$','.txt')" -verbose  
    }
    sleep 5
}
Mitglied: philipes
philipes 19.04.2021 um 08:29:36 Uhr
Goto Top
Guten Morgen warranty.
Leider gibt es bei dem letzten Script Fehler und es tut sich nichts.
Mitglied: 148121
148121 19.04.2021 aktualisiert um 10:27:24 Uhr
Goto Top
Zitat von @philipes:
Leider gibt es bei dem letzten Script Fehler und es tut sich nichts.
Super Aussage und sowas in nem Admin Forum ! Kopfklatsch.

Funktioniert einwandfrei, getestet....