danielg80
Goto Top

Batch zum Auslesen einer .txt Datei in Variablen

Hallo,
habe das Forum durchforstet und leider nichts passendes gefunden!
Ich habe eine Txt datei vorliegen mit folgendem Inhalt:

Users of XXXX: (Total of 8 licenses issued; Total of 0 licenses in use)
Users of XXXX: (Total of 8 licenses issued; Total of 0 licenses in use)
Users of XXXX: (Total of 10 licenses issued; Total of 0 licenses in use)
Users of XXXX: (Total of 8 licenses issued; Total of 0 licenses in use)
.
.
Users of XXXX: (Total of 16 licenses issued; Total of 0 licenses in use)

(Insgesamt 20 Zeilen)

Nun möchte ich eine Batch erezugen die mir diese Datei einliest und jedes einzelne XXXX (Programm), die dazugehörige erste Zahl und die dazugehörige 2 Zahl als eine eigenständige Variable speichert! Und dies mit alle 20 Zeilen! Im besten Fall hätte ich also 60 Variablen

Brauche das, denn ich möchte diese dann in einer Art Log Datei als tabelle ausgeben (per Batch)

Hoffe auf euere Hilfe, denn ich bin noch recht neu bei euch!
face-wink

Content-Key: 379383

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

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

Mitglied: 136588
136588 Jul 06, 2018 updated at 11:44:20 (UTC)
Goto Top
@echo off
for /f "usebackq tokens=3,7,11 delims= :" %%a in ("c:\Datei.txt") do echo %%a,%%b,%%c  
oder auch
@echo off
set "file=C:\datei.txt"  
powershell -Executionpolicy ByPass -NoProfile -Command "gc '%file%' | ?{$_ -match  'of ([^:]+).*?of (\d+).*of (\d+)'} | %%{[pscustomobject]@{Program=$matches[1];Issued=$matches[2];InUse=$matches[2]}} | ft"  
Im besten Fall hätte ich also 60 Variablen
LOL face-big-smile
Member: DanielG80
DanielG80 Jul 11, 2018 updated at 12:10:12 (UTC)
Goto Top
wie oben beschrieben ausgangsdatei sieht so aus:
Users of XXX1: (Total of 8 licenses issued; Total of 4 licenses in use)
 Users of XXX2: (Total of 8 licenses issued; Total of 1 licenses in use)
 Users of XXX3: (Total of 10 licenses issued; Total of 0 licenses in use)
 Users of XXX4: (Total of 8 licenses issued; Total of 0 licenses in use)
 .
 .
 Users of XX20: (Total of 16 licenses issued; Total of 0 licenses in use)
mit
for /f "usebackq tokens=3,6,11 delims=: " %%a in (test.txt) do ECHO %%a ; %%b ; %%c >>neu.txt  
habe ich dann in der neu.txt
Lizenzname ; Issued ; in Use 
Users of XXX1 ; 8 ; 4 
Users of XXX2 ; 1 ; 1 
.
.
Users of XX20 ; 1 ; 0

meine letzte datei soll aber einen anderen aufbau haben und deswegen bräuchte ich jeden "Wert" in einer variablen (lizenz1= Users of XXX1, lizenz2= Users of XXX2 ,. .....lizenz20= Users of XX20 max1=8, max2=1..... max20=1 ist1=4, ist2=1......ist20=0

mit
for /f "usebackq tokens=1,2,3 delims=; " %%a in (test.txt) do (  
set lizenz1=%%a
set max1=%%b
set ist1=%%c
echo !lizenz1!
echo !max1!
echo !ist1!
)
speichert er mir ja die erste Zeile richtig in die Variablen, mein Problem ist aber das beim zweiten Durchlauf (2.zeile usw) der Schleife ja lizenz1 ersetzt wird!

kann man das nicht irgendwie hinbekommen das er das die erste zeile der test.txt in (Lizenz1,Max1 und ist1) speichert
die zweite zeile der test.txt in (Lizenz2,Max2 und ist2) speichert
3.zeile in (Lizenz3,Max3 und ist3)
usw

und ich dann am ende sagen kann jetzt
echo %lizenz1% ; %Lizenz2%
echo (%max1%)%ist ; (%max2%)%ist2%

soll also so aussehen

Users of XXX1 ; Users of XXX2
(8)4 (1)1

hoffe ihr versteht mich