Batch-Datei: String auslesen

Koerk

Lieutnant
Mitglied seit
10.08.2005
Beiträge
53
Renomée
0
Hallo zusammen,

ich soll folgendes Problem mit einer Batch-Datei lösen:

Gegeben ist eine Datei mit einer Bezeichnung, die diesen Aufbau hat: Kundennummer_Dateinummer.Endung
Jetzt soll per Batch-Datei in einem bestimmten Verzeichnis ein Ordner mit der Kundennummer angelegt werden und die Datei mit dem Format Dateinummer.Endung hineinkopiert werden.
Ich kenne zwar ein paar DOS-Befehle, aber ich stecke nicht wirklich in der Materie. Der String müsste ja irgendwie zerlegt werden und dann gibts MKDIR und COPY und so. Aber ich kriegs auf die Schnelle nicht hin.
Ist hier vielleicht jemand fit in Batch-Programmierung und kann mir wertvolle Tipps geben?
Danke!

Gruß,

Körk
 
Strings in einer Variable kann man in Batch auch einfacher zerlegen, solange sie die gleiche Länge haben. Beispiel aus meiner Sammlung:
Code:
set CURRENTTIME=%TIME%
REM Nur erste 2 Zeichen der Zeit verwenden: HH
set CURRENTHOUR=%CURRENTTIME:~0,2%

Wie gesagt: wenn die Länge der Strings bzw. deren Offsets (vom Ende oder vom Anfang) immer gleich sind, kann man diese Methode verwenden, zumal ich davon ausgehe, dass das schneller ist als eine for-Schleife. Letztere dürfte aber sicherer/robuster sein, wenn Sonderfälle auftreten.

Ich hab mal schnell was zusammengeschraubt:
Code:
@echo off

REM Kundennummer_Dateinummer.Endung

for /f "tokens=1,2 delims=_" %%i in ('dir /b Kundennummer_Dateinummer.Endung') do (
    set kunde=%%~i
    set rest=%%~j
)
echo Kunde: %kunde%
echo Dateinummer.Endung: "%rest%"

mkdir c:\verzeichnis\%kunde%
copy "%rest%" c:\verzeichnis\%kunde% > NUL
Sind natürlich keinerlei Fehler abgefangen (Datei existiert schon oder lässt sich nicht kopieren etc.). Äußere dich halt mal, ob das passt und ob du damit weiterkommst.

MfG Dalai
 
Danke für die Tipps! Mit der For-Schleife klappt das ganz gut.

Gruß,

Körk
 
Zurück
Oben Unten