Text in eine Zeile in .txt (Batch)?

2 Antworten

auch wenns Schwachsinn ist:

test.txt

123
345
987
8
815

demo.cmd

(call )>"csv.txt"
for /f  "usebackq" %%a in ("test.txt") do (<nul >>"csv.txt" set /p "=,%%~a")
rem oder:
for /f  "usebackq" %%a in ("test.txt") do ( call set "csvString=%%csvString%%%%~a,")
>"csv2.txt" echo %csvString:~0,-1%

die erste Variante kann unendlich viele Zahlen aneinander reihen, aber man muss das erste Komma von Hand im Editor entfernen.

Die zweite Variante ist auf die Maximallänge (8192 Zeichen) einer Kommandozeile beschränkt . Das heißt, die reale Zeile kann etwa 8000 Zeichen aufnehmen.

ganz ohne Limits gehts mit einem Powerschell-Einzeiler :

(gc 'test.txt')-join ',' >'csv3.txt'

oder in einer Batch:

powershell "(gc 'test.txt')-join ',' >'csv3.txt'"

Allerdings verstehe ich nicht weshalb Du mit batch rumeiern willst, wenn Du mit Java programmierst..

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Ja mit

echo -n "123," >Test.txt
echo -n "345," >>Test.txt
echo -n "987," >>Test.txt

Beim letzten "echo" dann das Komma am Ende weglassen.

Hinweis: Die Option "-n" verhindert das Drucken des Zeilenvorschubs. Ich lege Dir aber hier nahe, Dir mal das Kommando "printf" anzusehen.

Aber warum nicht gleich

echo "123,345,987" >Test.txt

?


Erzesel  03.08.2023, 15:23

echo -n gibts nicht in Batch

evtldocha  03.08.2023, 15:30
@Erzesel

Tja - so betriebsblind kann man sein. Da habe ich nur an Linux/Unix gedacht, weil ich damit seit 30 Jahren Skripte schreibe :-(

frivex 
Beitragsersteller
 03.08.2023, 15:12

Bedeutet ich möchte mehr mals Zahlen speichern und am besten direkt hintereinander oder gibt es eine Möglichkeit diese Zahlen in Java als List / Variable hintereinander zu speichern

evtldocha  03.08.2023, 15:15
@frivex

Ich habe, bewusst gewollt, absolut keine Ahnung von Java ....

Erzesel  03.08.2023, 16:20
@frivex
gibt es eine Möglichkeit diese Zahlen in Java als List / Variable hintereinander zu speichern

Ich bin kein Javaprogrammierer, aber wenn Du auf den Input aus einer mit Batch erzeugten Datei zugreifen willst, hast ja auch nur einen String eingelesen....

Ergo kannst Du Deinen String auch direkt in Java definieren

   String csv = "123,345,987";
   System.out.println(csv);

Du hast leider nicht geschrieben woher Du deine Zahlen beziehst und was Du eigentlich vorhast.

...und warum willst Du überhaupt mit Java herumeiern?

mit Powershell ist dergleichen Pillepalle

$myarray = [int[]]@(123,345,987) # einfach ein Array aus Integern definieren
$myarray #mal anzeigen

$MyCSVString = $myarray -join ',' #aller Werte im Array zu einen durch Komma getrennten String umwandeln
$MyCSVString #mal anzeigen

 #das ganze wieder Rückwärts zu einen Intergerarray
$myIntegers = [int[]]$( $MyCSVString -split ',')
$myIntegers #mal anzeigen
frivex 
Beitragsersteller
 03.08.2023, 15:11

Ich wollte diese Datei auslesen und dann in Java verwenden, dementsprechend müssen die zahlen Untereinander später in eine Zeile