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

Printed on: October 15, 2024 at 15:10 o'clock

Penny.Cilin
Penny.Cilin Sep 25, 2024 at 14:40:32 (UTC)
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
Solution TK1987 Sep 25, 2024 updated at 14:53:02 (UTC)
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 Sep 25, 2024 at 14:59:31 (UTC)
Goto Top
@TK1987

Vielen Dank!

Gruss Globe!
Ted555
Solution Ted555 Sep 25, 2024 updated at 15:32:24 (UTC)
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 Sep 25, 2024 at 15:27:15 (UTC)
Goto Top
@Ted555
Auch Dir ein fettes Danke!

Gruss Globe!