yearlight

2 Werte aus einer TXT-Datei auslesen und Ordner erstellen.

Hallo,
ich versuche aus folgender Textdatei, die Werte <Run> und <Number> auszulesen, und daraufhin einen Ordner mit einer zusammengesetzten Seriennummer zu erstellen.

<OneWireAnalyzerData>
<OneWireID>18613300</OneWireID>
<Error>0</Error>
<AnalyzerIdentification>
<OneWireAnalyzerIdentification>
<AnalyzerID>
<AnalyzerID>
<Id>11</Id>
<Run>178</Run>
<Number>4</Number>
</AnalyzerID>

Ich verwende dazu folgendes script:

setlocal ENABLEDELAYEDEXPANSION
for /f "skip=8 tokens=* delims=" %%k in ('type "E:\Odin\AnalyzerChipData.txt"') do @(
set RunNo=%%k
for /f "tokens=3,6 delims=<>" %%m in ("!RunNo!") do @(
set neuerOrdner="R0%%mN0%%n"
md !neuerOrdner!
goto ENDE
)
)
:ENDE

Mir wird zwar jetzt ein Ordner im Format R0...N0 erstellt, ich komme aber nicht an die Variable <Number> heran.

Wie kann ich diese in die Ordnernummer hineinbringen?
Hat jemand eine Idee?
Vielen Dank
Achim
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 213209

Url: https://administrator.de/forum/2-werte-aus-einer-txt-datei-auslesen-und-ordner-erstellen-213209.html

Ausgedruckt am: 19.07.2025 um 02:07 Uhr

Endoro
Endoro 02.08.2013 aktualisiert um 13:27:21 Uhr
Hallo, zum Testen:
@ECHO OFF &SETLOCAL
FOR /f "tokens=2delims=<>" %%a IN ('findstr /i "Run Number" file') DO (  
	IF NOT DEFINED run (
		SET "run=%%a"  
	) ELSE (
		IF NOT DEFINED number SET "number=%%a"  
	)
)
ECHO MD "%run%%number%"  
lg.
yearlight
yearlight 02.08.2013 um 14:05:46 Uhr
Hängt sich nach Zeile 8 kommentarlos auf. Hat fürs Echo keinen Bock mehr.
Endoro
Endoro 02.08.2013 um 14:20:25 Uhr
Zitat von @yearlight:
Hängt sich nach Zeile 8 kommentarlos auf. Hat fürs Echo keinen Bock mehr.

Kann ich verstehen, bei der Hitze face-smile
Weiter gehts:
@ECHO OFF &SETLOCAL
FOR /f "tokens=2delims=<>" %%a IN ('type file ^| findstr /i "Run Number"') DO (  
	IF NOT DEFINED run (
		SET "run=%%a"  
	) ELSE (
		IF NOT DEFINED number SET "number=%%a"  
	)
)
ECHO MD "%run%%number%"  
lg.
yearlight
yearlight 02.08.2013 um 15:01:58 Uhr
Er hängt sich jetzt zwar nicht mehr auf, kann aber die angegebene Datei nicht finden.
Guck doch mal bitte kurz mein script an. Der Pfad ist korrekt. Ich probiere das zum ersten (2.) nach vielen Jahren.

setlocal
FOR /f "tokens=2 delims=<>" %%a IN ('type file ^| findstr /i "E:\Odin\AnalyzerChipData.txt"') DO (
IF NOT DEFINED run (
SET run="%%a"
) ELSE (
IF NOT DEFINED number SET number="%%a"
)
)
ECHO MD "%%run%%number"
Endoro
Endoro 02.08.2013 um 15:32:32 Uhr
Der Dateiname steht bei type, das Suchmuster bei findstr:
@ECHO OFF &SETLOCAL
FOR /f "tokens=2delims=<>" %%a IN ('type "E:\Odin\AnalyzerChipData.txt" ^| findstr /i "Run Number"') DO (  
	IF NOT DEFINED run (
		SET "run=%%a"  
	) ELSE (
		IF NOT DEFINED number SET "number=%%a"  
	)
)
ECHO MD "%run%%number%"  
Beim echo ist dir ein % verrutscht.
lg.
yearlight
yearlight 02.08.2013 um 15:56:21 Uhr
Vielen Dank,
Ich konnte mit dem findstr "Run Number" nichts anfangen und hielt dies für deinen Dateinamen.

Hat mir sehr geholfen.


Btw gibt es eine Möglichkeit, die Ausgabe immer als vierstellige Zahl mit führenden Nullen auszuführen? Wenn nicht, egal.


Vielen Dank noch einmal für die Hilfe

Achim
Endoro
Endoro 02.08.2013 um 17:59:28 Uhr
Führende Nullen kannst du auch bekommen:
set "fullnumber=0000%run%%number%"  
set "fullnumber=%fullnumber:~-4%"  
echo MD "%fullnumber%"  
lg.
yearlight
yearlight 02.08.2013 um 20:55:16 Uhr
Vielen Dank, war von mir ungenügend erklärt.

schön wäre, anstatt einer Ausgabe von:
Beispiel
run number
178 4
0178 0004

Aber das ist nur reine Kosmetik,
ich bedanke mich noch einmal herzlich.

Schönes Wochenende
wünscht Achim
Endoro
Endoro 02.08.2013 um 22:06:21 Uhr
Das ist wie oben, nur eben zwei mal:
set "run=0000%run%"  
set "number=0000%number%"  
set "fullnumber=%run:~-4% %number:~-4%"  
echo MD "%fullnumber%"  
lg.