choffmann
Goto Top

Per Batch einen Wert aus einer Textdatei in eine Variable schreiben

Textverarbeitung mit Batchbefehlen

Hallo Experten.

Folgende Textdatei habe ich:
Textdatei Anfang---
InfoKey: Creator
InfoValue: FreePDF XP 3.07 - http://shbox.de
InfoKey: Title
InfoValue: Flumec_001
InfoKey: Author
InfoValue: chrhof
InfoKey: Producer
InfoValue: AFPL Ghostscript 8.54
InfoKey: ModDate
InfoValue: D:20070725143759
InfoKey: CreationDate
InfoValue: D:20070725143759
NumberOfPages: 2
Textdatei Ende---

Ich würde gerne den Wert "2" von NumberOfPages in eine Variable schreiben. Hat jemand eine Idee wie das gehen könnte.

mfg
Christian

Content-ID: 64697

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

Ausgedruckt am: 25.11.2024 um 11:11 Uhr

Dani
Dani 25.07.2007 um 18:40:30 Uhr
Goto Top
Hi Christian,
probier's mal so:
@echo off & setlocal

for /f "tokens=2 delims= " %%a in ('type %1 ^| findstr /i "NumberOfPages"') do set NumberOfPages=%%a  

pause
Die Variable heißt "NumberOfPages" und gilt nur im aktuellen Fenster.


Grüße
Dani
bastla
bastla 25.07.2007 um 18:44:19 Uhr
Goto Top
Hallo choffmann!

Bevor ich die Suchfunktion bemühe, Versuchen wir es gleich einmal so:
for /f "tokens=2" %%i in ('findstr /c:"NumberOfPages" Textdatei') do set Seiten=%%i  

Grüße
bastla

[Edit] @Dani: Gerne nach Dir ... face-wink [/Edit]
[Edit2] Die Suchfunktion bringt viel mehr, wenn dann wieder Code angezeigt wird. [/Edit]
Biber
Biber 25.07.2007 um 19:36:16 Uhr
Goto Top
Moin choffmann,

Fussnote:
Damit nicht ein trailing blank die weitere Auswertung stört, würde ich den Wert der Variablen wahlweise setzen mit
  • ....set "NoPages=%%~i" .........oder
  • ....set /a "NoPages=%%i" .

Ansonsten eine der Lösungen oben.

Gruß
Biber
Dani
Dani 25.07.2007 um 19:46:02 Uhr
Goto Top
Hi bastla,
ich musste einfach die Chance nutzen.... *gg* Aber meistens sind meine Lösungen nicht so perfekt durchdacht, wie bei dir / euch (@Biber). Also keine Angst, mach dir keine Konkurenz. ^^


Grüße
Dani
Biber
Biber 25.07.2007 um 19:57:38 Uhr
Goto Top
@Dani
"...nicht so perfekt durchdacht wie bei dir / euch.."

Da muss ich Dich enttäuschen...
Bei uns Amateur-Skriptern ist es- um mal einen Kalauer zu wagen - nicht so sehr "durchdacht" als vielmehr "überdacht".
Überdacht trifft es besser - weil wir im Praxistext mit unseren Schnipseln dauernd im Regen stehen.
Wie Du an unseren vielen "[Edit]"s und nachtröpfelnden Verfeinerungen sehen kannst.

@bastla
Gehe in diesem Fall davon aus auch für Dich sprechen/schreiben zu dürfen...face-wink

Grüße
Biber
Dani
Dani 25.07.2007 um 20:16:29 Uhr
Goto Top
@Biber
Bei uns Amateur-Skriptern ...
Wenn du dich als Amateur ansiehtst, was bin dann ich?? Du bzw. ihr schreibt uns hier Scripte, wo es mir (vllt. geht es anderen auch so) schwindelig wird! Also nicht so viel Bescheidenheit bitte. *gg*

Wie Du an unseren vielen "[Edit]"s und nachtröpfelnden Verfeinerungen sehen kannst.
Das mag sein, aber das liegt meinstes an den Anforderungen der Fragesteller. Den die rrücken die restlichen Feature erst nach eurem funktionierendem Script raus!


Grüße
Dani
bastla
bastla 25.07.2007 um 20:23:27 Uhr
Goto Top
@Biber & Dani

Wichtig ist ja nur, dass das Nachtröpfeln endet, bevor die Lösung ganz "durchweicht" (oder der Fragesteller entfleucht) ist ... face-wink

Andererseits ist es (derzeit) ohnehin ratsam, die Lösung scheibchenweise zu präsentieren (zumindest wenn sie unvorsichtiger Weise zwischen Code-Tags steht) ...

Grüße
bastla
Biber
Biber 26.07.2007 um 19:05:01 Uhr
Goto Top
Moin choffmann,

wir wollten Dich aus unserer Plauderei nicht ausschließen ... You are welcome!

Hat denn einer der Lösungsansätze oben bei Dir gepasst?
Ist Deine Frage beantwortet?

Grüße
Biber
choffmann
choffmann 02.08.2007 um 14:04:42 Uhr
Goto Top
Hi alle zusammen.
Ich wahr in den Ferien daher meine späte Antwort.
Da NumberOfPages immer in der letzten Zeile steht *Glück* sieht die Lösung nun so aus:
FOR /F "tokens=1,2,3 delims=: " %%a in (doc_data.txt) do Set Var1=%%a & Set Var2=%%b & Set Var3=%%c

Im letzten Durchgang werden die richtigen Werte in die Variablen geschrieben und ich kann mit Var2 weiterarbeiten.

Danke für eure Hilfe.

mfg
Christian