nick.b
Goto Top

Nummer suchen und als Variable setzen

Ich stehe vor einem Problem und hoffe es kann mir jemand helfen.

Ich habe eine Textdatei in der eine Zahl steht und möchte diese gerne mit einer Batch Datei auslesen (was noch kein Problem darstellt) und die Zahl dann als Variable einsetzen. Ist dies mit Batch möglich ??

Danke schon mal im Vorraus !!

Content-ID: 258544

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

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

rubberman
rubberman 26.12.2014 aktualisiert um 19:06:29 Uhr
Goto Top
Hallo Nick.B.

Ich stehe vor einem Problem
Ich auch. Und zwar vor dem Problem, dass ich nicht sehe, wie der Inhalt deiner Datei aussieht. Besteht er nur aus der Zahl? Ist die Zahl irgendwo mitten in einem Text versteckt?
Ohne weitere Info lässt sich deine Frage nicht beantworten.

Grüße
rubberman
Nick.B
Nick.B 26.12.2014 um 19:18:49 Uhr
Goto Top
In der Textdatei steht nur eine Zahl sonst nichts
Pjordorf
Lösung Pjordorf 26.12.2014 aktualisiert um 20:17:00 Uhr
Goto Top
Hallo (nicht an dich),

Zitat von @Nick.B:
Ist dies mit Batch möglich ??
Grundsätzlich ist diese Frage mit Ja zu beantworten, egal wie viele Fragezeichen face-smile
Set "meineneuevariable=meineausgeleseneZahl"  

Gruß (du ahnst es schon face-smile nicht an dich),
Peter
rubberman
Lösung rubberman 26.12.2014 aktualisiert um 20:16:48 Uhr
Goto Top
Hallo Nick.B (ich grüße trotzdem).

  • Variante 1:
<"test.txt" set /p "num="

  • Variante 2:
for /f "usebackq" %%i in ("test.txt") do set /a num=%%i

<OrakelModus>
In der Textdatei steht nur eine Zahl sonst nichts
Da du die Textdatei mittels fehlerhafter ECHO-Umleitung aus einem Batchcode erzeugst, steht in deiner Datei hinter der Zahl noch ein Leerzeichen. Darum möchtest du (vorzugsweise) die Umleitung korrigieren, á la
>"test.txt" echo 123
oder Variante 2 nutzen.
</OrakelModus>

Grüße
rubberman
Nick.B
Nick.B 26.12.2014 um 20:16:46 Uhr
Goto Top
Vielen Dank
Arniee
Arniee 13.01.2015 um 20:22:47 Uhr
Goto Top
Prinzipiell hätte ich das jetzt so gelöst face-smile

for /f %%s in (Deine_txt.txt) do set Variable=%%s
echo %Variable%


Und noch eione Frage rubbermann was bedeutet "usebackq" bzw. welche funktion besitzt es?

Mfg
Arniee
rubberman
rubberman 13.01.2015 um 20:53:15 Uhr
Goto Top
Hallo Arniee,

USEBACKQ ändert die Syntax für den Streamtyp im Klammerausdruck. Normalerweise würde eine Zeichenfolge, die in Anführungszeichen steht, als Stringstream interpretiert werden. Um ihn als Dateistream zu interpretieren, benötigst du das USEBACKQ.
Warum das Ganze? Weil sich Nick.B darüber ausschweigt, ob der Dateiname Leer- oder Sonderzeichen enthält.
Wenn du mehr darüber wissen willst, schau dir eine englische Referenz zu FOR Schleifen an. (Die deutsche Onboard-Hilfe ist genau in diesem Punkt bereits seit mehreren Windowsversionen falsch).

Grüße
rubberman