Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mit Batch mehrzeilige Spalte zeilenweise auslesen und Inhalt weiterverwenden...?

Mitglied: 76623

76623 (Level 1)

18.03.2009, aktualisiert 13:22 Uhr, 5661 Aufrufe, 8 Kommentare

Hey Leute,
Auch wenn es schon -zig Beiträge ähnlicher Art gibt, iwie bin ich einfach zu unfähig die tw schon vorhandenen Lösungen an mein Batchfile anzupassen, liegt auch daran dass ich die FOR-Anweisung noch nicht zu 100% versteh, egal...

Der Titel sagt ja schon das Wesentliche, nun zu den Details:
Ich habe eine Textdatei(Bsp.txt) mit mehreren Zeilen die wie folgt formatiert ist
(reines Bsp, in Wirklichkeit handelt es sich um 100.000 Zeilen mit total unterschiedlichen Zahlen):
 
	9
Mit Worten ausgedrückt: eine einzelne Spalte mit bekannter Zeilenanzahl

Bestimmte Zahlen/Zeilen möchte ich nun nacheinander auslesen um mit ihnen weiter zu arbeiten(im Prog unten ist diese "Verarbeitung" jetzt nur ein "echo" - rein der Einfachheit halber und um die Funktion zu testen. Tatsächlich folgen div. größer/kleiner Abfragen und dann entsprechende weitere Abläufe)

Mein BatchProg schaut derzeit wie folgt aus (an Bsp.txt angepasst):
01.
@echo off 
02.
set /a counter=0 
03.
 :loop 
04.
set /a counter=%counter%+1 
05.
for /f "tokens=%counter%" %%i in (Bsp.txt) do set /a zahl=%%i 
06.
echo %zahl% 
07.
if %counter%==9 goto :ende 
08.
goto :loop 
09.
 :ende 
10.
 pause 
11.
exit
Ergebniss dieses Ablaufes ist, dass ich 9x die Zahl 9 ausgespuckt bekomme, weil es einfach jedesmal die ganze spalte runterrattert.

Falls Unklarheiten, hier noch ne Bemerkung zum besseren Verständnis meines Anliegens:

WÜRDE meine Bsp.txt so formatiert sein (alle Werte in nur einer Zeile), ...

1 2 3 4 5 6 7 8 9

... so würde mein Batchprog wie gewünscht funktionieren(Ergebnis schaut hier so aus: nacheinander werden die Zahlen 1-9 ausgespuckt, danach pause und exit), und ich könnte mit Hilfe des %Counter%s auf das gewünschte Zeichen (z.B. 3. Zahl) zugreifen und damit bei Bedarf weiterarbeiten. (z.B. IF %counter%==3 SET irgendwas_1=%zahl%... IF irgendwas_1... etc)
Aber leider ist diese Formatierung bei meiner .txt nicht der Fall.

Das diese "tokens"-Zeichenabfrage jetzt irgendwie an den Zeilenumbrüchen scheitert ist mir schon klar, nur die Frage ist: Wie mach ich das auch meinem Batchfile klar?

Danke im Vorraus für euren PRODUKTIVEN Antworten
(especially dedicated for wannabe-DrHouse)

MfG, 5chweinsbraten




[Edit Biber] Code mit Code-Tags formatiert. [/Edit]^^
Mitglied: 60730
18.03.2009 um 12:21 Uhr
Hallo Servus und auch dir ein herzhaftes Willkommen.

Mir fallen drei Dinge auf:

  • die Variable "mit der Tür ins Haus" hast du erfüllt - das ist schonmal eher ungern gelesen.
  • Dein Beitrag und deine Batch sind irgendwie "wirr" - was genau ist denn das Begehr?
  • Bitte dringendst um Hilfe !!

for /?

Gruß
[_] Benachrichtigung bei Antwort keine Arme -keine Kekse
Bitte warten ..
Mitglied: 76623
18.03.2009 um 12:58 Uhr
Hast tw recht, habs daher tw editiert damit auch jene Leute was davon haben, welche sich nicht ohne ultimativer Höflichkeitsform zurechtfinden

Mit dringendst mein ich, dass ich es blöderweise eilig habe, mit Hilfe mein ich: ich schaffs leider nicht allein

"Begehr" steht im Titel und im Rest des Beitrages, sogar sehr detailiert um Unklarheiten auszuschließen, daher mit Mörderlänge

wirre Batch ... bin eben kein Programmierer, aber so wirr kanns net sein, denn vom Prinzip funktionierts ja doch, eben nur bei Textdatein mit mehreren Zeichen die in ner einzelnen ZEILE stehen, nur gehts eben NICHT, wenn diese in ner SPALTE(immer Zeilenumbruch zw den Zeichen)stehen

Bitte um genauere Fragen zum Code, denn mit "irgendwie wirr" kann man die werdende Lösung zum Beitrag nicht wirklich vorantreiben

-Danke im Vorraus

MfG, 5chweinsbraten
Bitte warten ..
Mitglied: 60730
18.03.2009 um 16:52 Uhr
Servus,

ultimativer Höflichkeitsform

denk daran, wir sind alle auch nur Menschen und umsonst ist nicht mal der Tot, der kostet das leben.
Von daher ist es nicht wirklich ultimativ, sondern ein / das einzige was ich und einige andere bestimmt auch von demjenigen verlangen, dem wir für "umme" helfen.

Und damit du einen Einblick bekommst, wie eine Schleife funktioniert, habe ich dein Script so angepasst, das es "logischer" wird.

01.
@echo off 
02.
set /a counter=0 
03.
 :loop 
04.
set /a counter=%counter%+1 
05.
for /f %%i in (Bsp.txt) do ( 
06.
echo jetzt bin ich zum %counter% mal in der Datei und lese den Inhalt %%i && set /a zahl=%%i) 
07.
 
08.
if %counter%==9 goto :ende 
09.
goto :loop 
10.
 :ende 
11.
 pause 
12.
exit
gruß
(especially dedicated for wannabe-DrHouse)
ps:(i dont wanna be ur drill instructor - but i try my very best)
Bitte warten ..
Mitglied: bastla
19.03.2009 um 01:37 Uhr
Hallo 5chweinsbraten!

Wenn auch "wirr" nicht zutreffen mag, so fehlt mir doch in Deiner Beschreibung etwas an Zusatzinformation - insbes wieviele Zeilen Du auslesen willst und woher die Zeilennummern dafür stammen ...

Im einfachsten Fall (gesuchte Zeilen "hartcodiert") ginge es etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Datei=D:\Deine Textdatei.txt" 
03.
 
04.
set /a Z=1 
05.
for /f "usebackq delims=" %%a in ("%Datei%") do ( 
06.
    if !Z!==1 call :Verarbeitung 1 "%%a" 
07.
    if !Z!==3 call :Verarbeitung 3 "%%a" 
08.
    if !Z!==4 call :Verarbeitung 4 "%%a" 
09.
    if !Z!==7 call :Verarbeitung 7 "%%a" 
10.
    set /a Z+=1 
11.
12.
goto :eof 
13.
 
14.
:Verarbeitung 
15.
echo Zeile %1:%~2 
16.
goto :eof
Wenn es nur um wenige Zeilen geht, etwa so:
01.
@echo off & setlocal 
02.
set "Zeilen=4 7 3 1" 
03.
set "Datei=D:\Deine Textdatei.txt" 
04.
 
05.
for %%i in (%Zeilen%) do call :ProcessLine %%i 
06.
goto :eof 
07.
 
08.
:ProcessLine 
09.
set /a Z=%1-1 
10.
if %Z%==0 set /p Zeile=<"%Datei%"& goto :Verarbeitung 
11.
set Zeile= 
12.
for /f "usebackq skip=%Z% delims=" %%a in ("%Datei%") do if not defined Zeile set "Zeile=%%a" 
13.
 
14.
:Verarbeitung 
15.
echo Zeile %1: %Zeile% 
16.
goto :eof
oder so:
01.
@echo off & setlocal 
02.
set "Zeilen=4: 7: 3: 1:" 
03.
set "Datei=D:\Deine Textdatei.txt" 
04.
 
05.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Datei%"^|findstr /b "%Zeilen%"') do echo Zeile %%i: %%j
Grüße
bastla
Bitte warten ..
Mitglied: 60730
20.03.2009 um 10:22 Uhr
Servus 5chweinsbraten,

auch wenn es "blöd" ist:

zuerst einmal das Lob.

  • schön - dass du deinen Beitrag etwas geändert hast.

Aber....

  • schade, das dein Beitrag - ast genau dem entspricht, den ich "erwartet" habe:
5chweinsbraten am 18.03.2009 um 11:45:28 Uhr.
/Snip
\snap
Bitte dringendst um Hilfe !!


Das du meine Hilfe nicht akzepzierst - weil Sie eine Hilfestellung eine andere als die gesuchte ist - eh klar.

Aber daß Kollege Bastla seit 19.03.2009 um 01:37:20 Uhr auf ein Feedback wartet - oder auch nicht - ist dann irgendwie traurig.

Have a nice weekend und nimm das mal alles in ruhiger Umgebung so an, wie es gemeint ist.

Gruß
Bitte warten ..
Mitglied: bastla
20.03.2009 um 16:25 Uhr
@TimoBeil
Aber daß Kollege Bastla seit 19.03.2009 um 01:37:20 Uhr auf ein Feedback wartet - oder auch nicht
"Warten" wäre übertrieben - ist bei 5chweinsbraten wohl eine der Situationen, die zeigen, wie schnell sich Prioritäten verschieben können (oder es war nach doch beinahe 14 Stunden bereits viel zu spät).

Grüße
bastla
Bitte warten ..
Mitglied: Biber
20.03.2009 um 16:37 Uhr
<OT II>
Aber daß Kollege Bastla seit 19.03.2009 um 01:37:20 Uhr auf ein Feedback wartet ...

Erfahrungsgemäß wartet Kollege bastla jetzt in der Fastenzeit nur auf eines.... das Ende derselben.
Bzw. wir alle warten jetzt auf Schweinsbraten... *gg

Und niemand sollte sollte jetzt das Wort "Feed" wie in "Feedback" erwähnen....

... oder Festplatten...

unangenehme Assoziationen..


</OT II>

Schönes Wochenende und nehmts leicht
Biber
Bitte warten ..
Mitglied: bastla
20.03.2009 um 16:42 Uhr
@Biber
No problem - wozu habe ich das Sternzeichen Phlegmadicker ...

Auch Dir ein schönes Wochenende
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Textdatei Zeilenweise auslesen
gelöst Frage von CreatorXBatch & Shell2 Kommentare

Hallo, ich weiß, zu dem Thema gibt es schon unzählige Threads. Ich hab auch einiges dazu gefunden und trotzdem ...

Batch & Shell
Batch Datei - Mehrzeilige Textdatei
gelöst Frage von SchmakusBatch & Shell5 Kommentare

Hallo Zusammen, ich möchte mit einer Batch Datei eine Textdatei erstellen. Ich verwende 2 Variablen (%1, %2). Die Textdatei ...

Batch & Shell

(BATCH:) Zeilenweise Txt auslesen und in eine Variable speichern

gelöst Frage von NincedBatch & Shell20 Kommentare

Hallo Leute, Ich weiß, es ist ein alter Hut, aber ich habe da ein paar Fragen bezüglich der for-Schleife ...

Batch & Shell

Batch Textdatei zeilenweise auslesen und als Variabel setzen

gelöst Frage von m.fesslerBatch & Shell2 Kommentare

Hallo, kann mir bitte jemand auf die Sprünge helfen wie ich eine Textdatei zeilenweise auslesen und diese als verschiedene ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 3 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement19 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...