Batch ausgabe zeilenweise stat spaltenweise ausgeben
Hallo
Ich versuche nun schon seit einiger Zeit mein "Problem" zu lösen.
Aber ich bekomme es einfach nicht hin.
Situation:
Ich habe mehrere Dateien in denen ich einen bestimmten String suche und ausgeben möchte.
Soweit habe ich das schon gelöst.
String der Datei:
Ausgabe meiner Batch
Es sind hier halt 2 Dateien, als Beispiel
Soweit ist auch alles gut.
Allerdings möchte ich, daß die Ausgabe so aussieht:
Also alles in einer Zeile.
Aber ich weiß nicht wie ich das realisieren könnte.
Gibt es da irgendeinen Trick?!
Danke schon mal
Ich versuche nun schon seit einiger Zeit mein "Problem" zu lösen.
Aber ich bekomme es einfach nicht hin.
Situation:
Ich habe mehrere Dateien in denen ich einen bestimmten String suche und ausgeben möchte.
Soweit habe ich das schon gelöst.
String der Datei:
Maschine; -18; Connector; 18; 0x00000000000; -2; user; Rechner; Maschine; Pins_Connector; -1; -1; -1; -1; 2183; 568; \\Server\Share\Share\L306\08506200021611092222222922_161109121129_Maschine_Group,jpg; Connector_Steckerpins; ; ; ; ; 6,60796; -2,26107e-002; -70,3132; -4,97814e-003; 2,31522e-002; -0,055067; -90,0863; 9,38137e-002; 0,214855; 34; 0; 0; 0; 0; 0; 0,73; 6; 0,140422; 34; 0,16982; 33; 0,214857; 34; 1; 0,11523; -1,30757e-003; -0,115223; 0,11523; 0,847; 0; Row: 1; 0,68237; 3,13065e-002; 3,05851e-002; ; ; ; ; ; ;
Maschine; -19; Connector; 19; 0x00000000000; -2; user; Rechner; Maschine; Pins_Connector; -1; -1; -1; -1; 2311; 568; \\Server\Share\Share\L306\08506200021611092222222922_161109121129_Maschine_Group,jpg; Connector_Steckerpins; ; ; ; ; 6,60796; -2,26107e-002; -70,3132; -4,97814e-003; 2,31522e-002; -0,055067; -90,0863; 9,38137e-002; 0,214855; 34; 0; 0; 0; 0; 0; 0,73; 6; 0,140422; 34; 0,16982; 33; 0,214857; 34; 1; 8,97888e-002; 2,22114e-002; -8,69968e-002; 8,97874e-002; 0,863; 0; Row: 1; 0,68845; 3,13065e-002; 3,05851e-002; ; ; ; ; ; ;
Ausgabe meiner Batch
Es sind hier halt 2 Dateien, als Beispiel
18; -1,30757e-003; -0,115223;
18; -1,30757e-003; -0,115223;
Soweit ist auch alles gut.
Allerdings möchte ich, daß die Ausgabe so aussieht:
18; -1,30757e-003; -0,115223;18; -1,30757e-003; -0,115223;
Also alles in einer Zeile.
Aber ich weiß nicht wie ich das realisieren könnte.
Gibt es da irgendeinen Trick?!
Danke schon mal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 320678
Url: https://administrator.de/contentid/320678
Ausgedruckt am: 17.11.2024 um 19:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo sugram.
Ich gehe davon aus, dass du die Ausgabe per ECHO vornimmst (den Code hast du leider nicht gepostet). Das erzeugt immer auch einen Zeilenumbruch. Mit SET /P kannst du das vermeiden.
... verkettet beide Strings in einer Zeile. Je nachdem wo der Zeilenumbruch erfolgen soll, gibst du entweder den letzten String wieder per ECHO aus, oder setzt den Zeilenumbruch separat mit einem
Grüße
rubberman
Ich gehe davon aus, dass du die Ausgabe per ECHO vornimmst (den Code hast du leider nicht gepostet). Das erzeugt immer auch einen Zeilenumbruch. Mit SET /P kannst du das vermeiden.
<nul set /p "=string1"
<nul set /p "=string2"
echo(
Grüße
rubberman
Hallo sugram.
Statt der Zahlenkolonne hast du natürlich deinen FINDSTR Aufruf im Code.
%%j lasse ich nur mit ausgeben, damit du siehst wie's funktioniert ...
Grüße
rubberman
Seltsamerweise kann ich den tokens bis 31 wunderbar benutzen, ab den Wert 32 bekomme ich nur noch eine leere Ausgabe?!
Ja, da gibt es ein Limit. Allerdings bin ich noch nie in die Verlegenheit gekommen darüber zu stolpern. Wie auch immer. In dem Fall kannst du den Rest nach dem 30. Token per * als String in einer weiteren Schleife verarbeiten. Also etwa so:@echo off &setlocal
for /f "tokens=30* delims=;" %%i in (
"1;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;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;"
) do for /f "tokens=19 delims=;" %%k in ("%%j") do (echo %%j&echo %%k)
pause
%%j lasse ich nur mit ausgeben, damit du siehst wie's funktioniert ...
Grüße
rubberman