Textdatei ohne abschließenden Zeilenumbruch erstellen
Ich möchte aus einer Batchdatei heraus eine Textdatei mit dem Windows Loginnamen erstellen, z.B. mit echo %username%>datei.txt.
Das Problem ist, dass die Textdatei dann immer mit einem Zeilenumbruch endet.
Die Textdatei wird anschließend von einer Software ausgelesen, ein Zeilenumbruch darin ist nicht zulässig.
Gibt es eine Möglichkeit, den Zeilenumbruch zu verhindern (nur per Batch)?
Danke für die Hilfe.
Das Problem ist, dass die Textdatei dann immer mit einem Zeilenumbruch endet.
Die Textdatei wird anschließend von einer Software ausgelesen, ein Zeilenumbruch darin ist nicht zulässig.
Gibt es eine Möglichkeit, den Zeilenumbruch zu verhindern (nur per Batch)?
Danke für die Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 57620
Url: https://administrator.de/contentid/57620
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
13 Kommentare
Neuester Kommentar
Hallo IstdaseinProblem und willkommen im Forum!
Grüße
bastla
Gibt es eine Möglichkeit, den Zeilenumbruch zu verhindern (nur per Batch)?
Ich fürchte, es hat sich seither nichts geändert ...Grüße
bastla
... soferne VBS eine Option wäre, sollte die folgende Batchdatei genügen:
Anmerkung: Die Batchdatei erstellt (und löscht wieder) eine temporäre VBS-Datei, welche das Auslesen und Schreiben des "Username" durchführt. Zu ändern wäre nur der Name/Pfad der Ausgabedatei.
Grüße
bastla
@echo off & setlocal
set "Ausgabedatei=D:\Test.txt"
set "VBSTemp=%temp%\GetUserName.vbs"
echo Set fsotxt = CreateObject("Scripting.FileSystemObject").OpenTextFile("%Ausgabedatei%", 2, 1)>"%VBSTemp%"
echo fsotxt.Write WScript.CreateObject("WScript.Network").UserName>>"%VBSTemp%"
echo fsotxt.Close>>"%VBSTemp%"
cscript //nologo "%VBSTemp%"
del "%VBSTemp%"
Grüße
bastla
Moin IstdaseinProblem,
willkommen im Forum.
Du kommst gerade richtig, gerade letzte Woche habe ich ein undokumentiertes Feature für ein "ECHO ohne Zeilenumbruch" gefunden.
Syntax-Demo:
Im Batch:
Gruss
Biber
willkommen im Forum.
Du kommst gerade richtig, gerade letzte Woche habe ich ein undokumentiertes Feature für ein "ECHO ohne Zeilenumbruch" gefunden.
Syntax-Demo:
>echo.|set /p=xxx>ohneCRLF.txt
(= 8:31:36 D:\temp=)
>echo.|set /p=>>ohneCRLF.txt
(= 8:31:49 D:\temp=)
>echo.|set /p=zzz>>ohneCRLF.txt
(= 8:32:02 D:\temp=)
>type ohneCRLF.txt
xxx zzz
(= 8:32:05 D:\temp=)
echo.|set /p=%username%>datei.txt
Gruss
Biber
Na gerne, miniversum,
dazu muss ich noch einen kleinen Umweg machen.
Output ist:
[MfG Biber, der ohne Leerzeichen und Zeilenumbruch in eine Textdatei schreiben kann]
Grüsse
Biber
dazu muss ich noch einen kleinen Umweg machen.
::---snipp NoLFEcho,bat
@echo off & setlocal
Set Ret=%temp%\ret
echo.>%ret%
set/p=MfG Biber, <%ret%>NoCRLF.txt
set/p=der ohne Leerzeichen und Zeilenumbruch in eine Text<%ret%>>NoCRLF.txt
REM Hier könnten jetzt 48 Batchzeilen mit Programmlogik folgen...
REM ...mach mir die Datensicherung z.B...
REM ...und irgendwann später kann ich in derselben Textzeile weiterschreiben..
REM Wäre ein nettes Feature in einer Logdatei mit "Start Backup 11:44 Ende 12:37"
REM ..hoffe, es ist verständlich...
set/p=datei schreiben kann<%ret%>>NoCRLF.txt
set /p test=<NoCRLF.txt
echo [%test%]
Del %ret%
::Snapp NoLFEcho.bat
[MfG Biber, der ohne Leerzeichen und Zeilenumbruch in eine Textdatei schreiben kann]
Grüsse
Biber
@miniversum
@istdochkeinproblem
Setzt Du dann bitte den Beitrag auf "gelöst", wenn er das für Dich ist?
Danke
Biber
Ist so ungewohnt von dir so lange Sachen zu lesen
Och, ich kann mich auch kürzer fassen:::---snipp MoreNoLFEcho.bat
@(echo.>%temp%\ret && For /L %%i in (1,1,200) do @set/p=MfG Biber ~~~<%temp%\ret>>con) & del %temp%\ret
@istdochkeinproblem
Setzt Du dann bitte den Beitrag auf "gelöst", wenn er das für Dich ist?
Danke
Biber
Moin Ren,
danke für Deine Variante.
Grüße
Biber
danke für Deine Variante.
(=16:45:41 E:\Schnipsel\RenBsp=)
>for /L %i in (1,1,4) do @set /p =wer schafft es noch kleiner<nul
wer schafft es noch kleinerwer schafft es noch kleinerwer schafft es noch kleinerwer schafft es noch kleiner
(=16:45:45 E:\Schnipsel\RenBsp=)
>for /L %i in (1,1,4) do @echo.|set /p= ich ;-)
ich ;-) ich ;-) ich ;-) ich ;-)
(=16:46:06 E:\Schnipsel\RenBsp=)
Grüße
Biber
verzähle ich mich da, oder hast du einen Zeichen Funktionscode mehr als ich? ;)
Gut, so sieht man es nicht, weil die letzte Leertaste des Textes im unteren Beispiel nicht sichtbar ist. Egal, aber ich meine, am Text sparen, dass kann ja jeder:
Hier z.B. ein "Schnecken-CLS", wer es braucht...
Und wenn wir schon bei einer minimalen Version sind:
Gruß ins Wochenende
for /L %i in (1,1,4) do @set /p = doch nicht ;-) <nul
for /L %i in (1,1,4) do @echo.|set /p= doch nicht ;-)
Hier z.B. ein "Schnecken-CLS", wer es braucht...
for /L %i in (1,1,2000) do @set /p = <nul
for /L %i in (1,1,2000) do @set/p= <nul