yearlight
Goto Top

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

Content-Key: 213209

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

Printed on: April 18, 2024 at 01:04 o'clock

Member: Endoro
Endoro Aug 02, 2013 updated at 11:27:21 (UTC)
Goto Top
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.
Member: yearlight
yearlight Aug 02, 2013 at 12:05:46 (UTC)
Goto Top
Hängt sich nach Zeile 8 kommentarlos auf. Hat fürs Echo keinen Bock mehr.
Member: Endoro
Endoro Aug 02, 2013 at 12:20:25 (UTC)
Goto Top
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.
Member: yearlight
yearlight Aug 02, 2013 at 13:01:58 (UTC)
Goto Top
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"
Member: Endoro
Endoro Aug 02, 2013 at 13:32:32 (UTC)
Goto Top
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.
Member: yearlight
yearlight Aug 02, 2013 at 13:56:21 (UTC)
Goto Top
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
Member: Endoro
Endoro Aug 02, 2013 at 15:59:28 (UTC)
Goto Top
Führende Nullen kannst du auch bekommen:
set "fullnumber=0000%run%%number%"  
set "fullnumber=%fullnumber:~-4%"  
echo MD "%fullnumber%"  
lg.
Member: yearlight
yearlight Aug 02, 2013 at 18:55:16 (UTC)
Goto Top
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
Member: Endoro
Endoro Aug 02, 2013 at 20:06:21 (UTC)
Goto Top
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.