Text in eine Zeile in .txt (Batch)?
Hallo ich speichere mehrere Zahlen untereinander in eine Txt mit Batch. zb.:
echo 123 > Test.txt
echo 345 > Test.txt
echo 987 > Test.txt
etc.
Gibt es die Möglichkeit diese Werte in einer Zeile zu speichern und mit Kommas zu trennen in Batch selber?
Ich wollte diese Datei auslesen und dann in Java verwenden, dementsprechend müssen die zahlen Untereinander später in eine Zeile
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..
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
?
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
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
Ich wollte diese Datei auslesen und dann in Java verwenden, dementsprechend müssen die zahlen Untereinander später in eine Zeile
echo -n gibts nicht in Batch