globetrotter
Goto Top

For schleife in Batch - Dateinamen in Variablen aufteilen

Nabend Gemeinde..
Ja, ich habe mir das Tut hier durchgelesen - blicke aber nicht durch...

Ich bekomme von UPS Dateien welche ich gerne mit Blat in unser Archiv schicken möchte.
Die Dateien selhen wie folgt aus:

266680 266681 266691_1Z7926836878084155.pdf  
266672_1Z7926836877866562.pdf 
266645 266667 266673 266685_1Z7926836878756992.pdf
...

Am Anfang stehen die Auftragsnummern und zum Ende die Paketnummer.
Nun sollte ich eine Schleife über den Dateinamenn habe welche mir folgendes ausspuckt:

Dateiname: 266645 266667 266673 266685_1Z7926836878756992.pdf
Paketnummer: 1Z7926836878756992
Auftragsnummern: 266645 266667 266673 266685

Das ist sicherlich kein Hexenwerk aber für mich gerade schon face-sad


Vielen Dank für Eure Unterstützung!

Gruss Globe!

Content-ID: 668379

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

Ausgedruckt am: 06.10.2024 um 08:10 Uhr

Penny.Cilin
Penny.Cilin 25.09.2024 um 16:40:32 Uhr
Goto Top
Korrigiere doch bitte den Titel Deiner Frage.

For schleife in Batch - Dateinamen in Variablen aufteilen

Das kann man auch noch nachträglich machen.
TK1987
Lösung TK1987 25.09.2024 aktualisiert um 16:53:02 Uhr
Goto Top
Moin,

@echo off

set Quelldatei=D:\Pfad\zur\Liste.txt

for /f "UseBackQ Delims=" %%A in ("%Quelldatei%") do (  
  echo=Dateiname: %%A
  for /f "Tokens=1-2 Delims=_." %%B in ("%%A") do (  
    echo=Paketnummer: %%C
    echo=Auftragsnummern: %%B
    echo=
  )
)
pause

Gruß Thomas
Globetrotter
Globetrotter 25.09.2024 um 16:59:31 Uhr
Goto Top
@TK1987

Vielen Dank!

Gruss Globe!
Ted555
Lösung Ted555 25.09.2024 aktualisiert um 17:32:24 Uhr
Goto Top
Oder gleich die Powershell
(Get-Content -Path "D:\Pfad\zur\Liste.txt") -replace '^(.*?)_([^.]+).*$',"Dateiname: `$0`r`nPaketnummer: `$2`r`nAuftragsnummern: `$1`r`n"  
Oder als weiter verwurstbare CSV
Get-Content -Path "D:\Pfad\zur\Liste.txt" | %{  
    $parts = $_ -split '[_.]'  
    [pscustomobject]@{
        Dateiname = $_
        Paketnummer = $parts[1]
        Auftragsnummern = $parts[0].trim().replace(" ",",")  
    }
} | export-csv "ausgabe.csv" -delimiter ";" -NoTypeInformation -Encoding UTF8  
Globetrotter
Globetrotter 25.09.2024 um 17:27:15 Uhr
Goto Top
@Ted555
Auch Dir ein fettes Danke!

Gruss Globe!