caprifischer
Goto Top

Guru Skill für TXT auslesen

Hallo Batch-Guru´s

ich hab da ein problem mit dem auslesen von ner text-tatei die ein output von ner datenbank ist und
wo ich den output nur so bekomme und ned anders (hät ich auch gerne).
ziel ist es die userid´s zu bestimmen und untereinander in ne txt-datei zu schreiben.


hier mal der output:
==============

TABLE OF USER-IDENTIFICATIONS: 
 
USERID      STATE  KTID   PORT   REPORT   CLASS  AD PROG 
------------+--------+------+------+-----------+---------+-------------------------- 
LASA7600    TRUE   9       12      1              ADMIN   2 + 3 + 4 + 5 + 6 + 7 + 
                                                                               8 + 9 + 10+ 11+ 12+ 13+ 
                                                                               14+ 15+ 16+ 17+ 18+ 19+ 
                                                                               20+ 21+ 22+ 23+ 24+ 25+ 
ADAO7621    TRUE   7       14     1              ADMIN    2 + 3 + 4 + 5 + 6 + 7 + 
TREO7671    TRUE   4       44     1              ADMIN    2 + 3 + 4 + 5 + 6 + 7 + 
MARA7643    TRUE   3       41     1              ADMIN    2 + 3 + 4 + 5 + 6 + 7 + 
ERPO7610    TRUE   5       29     1              ADMIN    2 + 3 + 4 + 5 + 6 + 7 + 
                                                                                8 + 9 + 10+ 11+ 12+ 13+ 
                                                                               14+ 15+ 16+ 17+ 18+ 19+ 
                                                                               20+ 21+ 22+ 23+ 24+ 25+ 
                                                                               26+ 27+ 28+ 29+ 30+ 31+ 
                                                                               32+ 33+ 34+ 35+ 40      
META7611    TRUE   2      19     1                ADMIN  2 + 3 + 4 + 5 + 6 + 7 + 
                                                                               8 + 9 + 10+ 11+ 12+ 13+ 
                                                                              14+ 15+ 16+ 17+ 18+ 19+ 
                                                                              20+ 21+ 22+ 23+ 24+ 25+ 
                                                                              26+ 27+ 28+ 29+ 30+ 31+ 
(hier nochmal als jpg da die Formatierung wichtig ist und sie oben verhauen wird)

8ff2ed25c764ce2c025f3df8bcbfb84e-table


und das sollte dabei rauskommen

LASA7600
ADAO7621
TREO7671
MARA7643
ERPO7610
META7611


ich hab schon mit ein paar sehr wilden for-strings rumexperimentiert aber dabei ist nix brauchbares rausgekommen.

hat jemand ne tip für mich wie ich so ein problem auf nen XP-SP2-rechner als batch zu schaffen ist.

bin für jede anregung dankbar.


gruß
caprifischer
[Edit Biber] Code-Formatierung ergänzt. Siehe unten [/Edit]

Content-Key: 56588

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

Printed on: April 25, 2024 at 11:04 o'clock

Member: bastla
bastla Apr 13, 2007 at 13:39:34 (UTC)
Goto Top
Hallo caprifischer und willkommen im Forum!

Da anscheinend gerade keine Gurus in der Gegend sind, versuche ich es mal face-wink:
@echo off & setlocal enabledelayedexpansion
for /f "skip=4 delims=" %%i in (test.txt) do set "Zeile=%%i" & if "!Zeile:~0,8!" neq "        " echo !Zeile:~0,8!  
Falls die Annahme, dass der Username eine fixe Länge von 8 Zeichen hat, nicht zutreffen sollte, sehen wir weiter ...

Grüße
bastla
Member: caprifischer
caprifischer Apr 13, 2007 at 14:31:50 (UTC)
Goto Top
Hi bastla,

danke für die schnelle und freundliche begrüßung.

ne sache ist hier nicht richtig - guru IST anwesend (zuminderst im verhältniss zu mir).

script tut !!

deine annahme mit 8 zeichen (oder weniger) ist richtig hatte es nur vergessen zu schreiben und deine umsetzung mit - neq " " - ist echt gut , wäre ich nie darauf gekommen, was mich auch brutal weit nach vorne bringt.


maga merci

caprifischer
Member: Biber
Biber Apr 13, 2007 at 15:17:43 (UTC)
Goto Top
Moin caprifischer,

willkommen auch von mir.

Echt blöd, dass heute keine Gurus in der Nähe sind.. na ja, Freitag, der 13te halt.

Dann versuche ich mal, bastla zu unterstützen.

Alternative zu einem so komplexen Batch wäre folgendes vom CMD-Prompt:
(=16:58:43  D:\temp=)
><b>for /f "skip=2" %i in ('findstr /R ^[A] userids.txt') do @echo %i</b>  
LASA7600
ADAO7621
TREO7671
MARA7643
ERPO7610
META7611
--oder, wenn es denn ein Batch sein muss--
:: snipp DispUserids.bat
@for /f "skip=2" %%i in ('findstr /R ^[A] userids.txt') do @echo %%i  
>DispUserIds.bat
LASA7600
ADAO7621
TREO7671
MARA7643
ERPO7610
META7611
...[Vorausgesetzt, diese Userliste heißt auch userIds.txt.]

Eine Anmerkung noch:
Die Formatierung mit Leerzeichen bleibt erhalten, wenn Du den Text mit den Tags < code > und < /code > formatierst.
Siehe in den FAQ unter "Formatierungen".

Gruss und schönes Wochenende
Biber