daffman
Goto Top

Jeder Token als neue variable

Hello!
Ich bräuchte dringens Hilfe für meine Batch datei zum auslesen einer txt datei face-smile

hallo community

ich versuche schon seit längerem eine batch zu schreiben, die mir einen text, den ich in einer txt habe, aufteilt und jeden teil in eine variable speichert
die wäre zum beispiel:
08:00-08:50
11:55-12:45
mit
for /f "tokens=1-4 delims=:	" %%i in (%date%.pdf) do (set a=  
%%i
set b=%%j
set c=%%k
set d=%%l)

kann ich es schon mal so aufschlüssel, dass ich dann a=08 b=00 c=08 und d=50 habe.
aber dann kommt die 2. zeile und die wird dann über das erste drübergespeichert.

weiß jemand, was ich meine und hat er/sie auch eine lösung??

lg
Alexander

Content-Key: 140527

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

Printed on: April 26, 2024 at 23:04 o'clock

Member: bastla
bastla Apr 13, 2010 at 15:34:24 (UTC)
Goto Top
Hallo Daffman!

In solchen Fällen ist es zumeist sinnvoll, die Variablen gleich entsprechend zu verarbeiten - was hast Du denn damit vor?

Grüße
bastla
Member: rubberman
rubberman Apr 13, 2010 at 15:50:00 (UTC)
Goto Top
Hallo Daffman.

Du kanns das ganze in fortlaufende Variablen bringen. Z.B. a1 für das erste Token der ersten Zeile usw., dann a2 für das erste Token der 2. Zeile ...

@echo off &setlocal

:: Werte in die Variablen bekommen ...
for /f "tokens=1-5 delims=:- " %%a in ('findstr /n . "%date%.pdf"') do (  
  set "n=%%a"  
  set "a%%a=%%b"  
  set "b%%a=%%c"  
  set "c%%a=%%d"  
  set "d%%a=%%e"   
)
:: ... und wieder ausgeben.
for /l %%i in (1,1,%n%) do (
  echo Zeile %%i:
  call echo %%a%%i%%
  call echo %%b%%i%%
  call echo %%c%%i%%
  call echo %%d%%i%%
  echo.
)

pause
Die Option /n von findstr setzt eine Zeilennummer vor jede Zeile, die dir hilft.

Wobei die Dateiendung *.pdf mich etwas verwundert.

Grüße
rubberman
Member: bastla
bastla Apr 13, 2010 at 15:56:42 (UTC)
Goto Top
@rubberman
Technisch gesehen schon klar; die Frage ist aber weiterhin: Was macht Daffman dann in der zweiten Schleife mit den Werten, was in der ersten nicht möglich gewesen wäre?
Wobei die Dateiendung *.pdf mich etwas verwundert.
Die Zerlegung anhand der Delimiter ":" und TAB sieht aber auch interessant aus ... ;.)

Grüße
bastla
Member: rubberman
rubberman Apr 13, 2010 at 16:09:06 (UTC)
Goto Top
Hallo bastla,

Zitat von @bastla:
@rubberman
Technisch gesehen schon klar; die Frage ist aber weiterhin: Was macht Daffman dann in der zweiten Schleife mit den Werten, was in
der ersten nicht möglich gewesen wäre?

Hmm, da oder dort mal gezielt auf einen bestimmten Wert zugreifen. Sonst fällt mir da auch nicht viel ein

Zitat von @bastla:
Die Zerlegung anhand der Delimiter ":" und TAB sieht aber auch interessant aus ... ;)

Der TAB war mir garnicht aufgefallen (hab ich für ein Blank gehalten), nur der fehlende "-" ist mir sofort ins Auge gestochen. (BTW können nicht vorhandene Dinge einem ins Auge stechen ??? face-wink )

Grüße
rubberman
Member: Daffman
Daffman Apr 13, 2010 at 16:55:47 (UTC)
Goto Top
hallo!

vielen dank für die rasche hilfe und es funktioniert wunderbar face-smile

um das rätsel zu lösen:

die endung pdf ist ein tippfehler, ich war mit den gedanken kurz wo anders, ist natürlich eine txt, ansonst macht es kaum sinn
der : ist da, weil es sich um eine zeit handelt und der TAB weil danach noch etwas kommt, weobei immer ein TAB als abstand fungiert face-smile

also nochmals danke, klappt perfekt!!

lg alexander
Member: bastla
bastla Apr 13, 2010 at 16:59:49 (UTC)
Goto Top
Hallo Daffman!

Es ist ja nicht so, dass ich besonders neugierig wäre face-wink, aber es würde mich trotzdem interessieren, was Du nun mit den vielen Variablen anstellen wirst ...

Grüße
bastla
Member: Biber
Biber Apr 13, 2010 at 17:10:46 (UTC)
Goto Top
[OT] @bastla
Zitat von @bastla:
Es ist ja nicht so, dass ich besonders neugierig wäre face-wink,
Verglichen mit der Steuerfahndung? Scientology? Der Inquisition? face-wink
aber es würde mich trotzdem interessieren, was Du nun mit den vielen Variablen anstellen wirst ...

kann ich aufklären.
Am 1. April hat doch eine mir namentlich bekannte Redmonder Softwareklitsche im TechNet gepostet :
"Werden in einer Batchdatei mehr als 12.345 Variablen definiert und mit zweistelligen Ziffern befüllt,
erhält der Ersteller dieses Schnipsels ein Vorkaufsrecht auf Windows 12.0 (Codename:First Stable)."


Am zweiten April, als dieser Scherz aufgelöst werden sollte, sind ja leider die TechNet-Server wieder mal abgeschmiert...

Grüße
Biber
[/OT]
Member: mrtux
mrtux Apr 13, 2010 at 18:46:13 (UTC)
Goto Top
Hi !

Zitat von @bastla:
Es ist ja nicht so, dass ich besonders neugierig wäre face-wink, aber es würde mich trotzdem interessieren, was Du nun mit den
vielen Variablen anstellen wirst ...

Vermutlich durchzählen ob die hinterher noch alle da sind....Vielleicht mit einer Schleife.. :-P

mrtux