Batch-bei set in der Mitte schreiben?
Hallo,
Ich wollte fragen, ob es eine Möglichkeit gibt, bei set /p in der Mitte zu schreiben (ohne sichtbare Zeichen).
Ich habe es schon mit "Alt+0160" versucht, aber rausgekommen ist nur ein anderes Zeichen, welches ich nicht kopieren konnte.
Hat vielleicht irgendeiner hier eine Idee?
Schonmal danke im Vorraus!
Ich wollte fragen, ob es eine Möglichkeit gibt, bei set /p in der Mitte zu schreiben (ohne sichtbare Zeichen).
Ich habe es schon mit "Alt+0160" versucht, aber rausgekommen ist nur ein anderes Zeichen, welches ich nicht kopieren konnte.
Hat vielleicht irgendeiner hier eine Idee?
Schonmal danke im Vorraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 309592
Url: https://administrator.de/forum/batch-bei-set-in-der-mitte-schreiben-309592.html
Ausgedruckt am: 22.04.2025 um 21:04 Uhr
5 Kommentare
Neuester Kommentar
Moin Jonas1806,
ist ein bisschen schwierig zu erkennen, was denn die Frage hinter der Frage ist bzw. welches Ziel du denn verfolgst.
Und was bei dir "in der Mitte schreiben" bedeutet, kannst auch nur du wissen.
Ich sehe doch nicht, ob dein CMD-Fenster eine Textlänge von 30 Zeichen oder von 178 Zeichen zulässt.
Also, evtl. meinst du dieses:
Wenn du allerdings meinst, dass der Variableninhalt mit führenden Leerzeichen beginnen soll
-> dann muss der Benutzer die schon als Leerzeichen eingeben.
Oder der Batch führende Leerzeichen ergänzen.
Aber schreib doch erstmal, was denn der ganze Plan ist, bevor ich hier rumrate.
Grüße
Biber
ist ein bisschen schwierig zu erkennen, was denn die Frage hinter der Frage ist bzw. welches Ziel du denn verfolgst.
Und was bei dir "in der Mitte schreiben" bedeutet, kannst auch nur du wissen.
Ich sehe doch nicht, ob dein CMD-Fenster eine Textlänge von 30 Zeichen oder von 178 Zeichen zulässt.
Also, evtl. meinst du dieses:
B:\>set /p "test=Mal einen Test machen: "
Mal einen Test machen: kwrekgüpreqkgük
B:\>set test
test=kwrekgüpreqkgük
Wenn du allerdings meinst, dass der Variableninhalt mit führenden Leerzeichen beginnen soll
-> dann muss der Benutzer die schon als Leerzeichen eingeben.
Oder der Batch führende Leerzeichen ergänzen.
Aber schreib doch erstmal, was denn der ganze Plan ist, bevor ich hier rumrate.
Grüße
Biber

Hi.
If you mean writing in the middle of the console window? Then try this:
Regards
If you mean writing in the middle of the console window? Then try this:
@echo off & setlocal enabledelayedexpansion
set "question=Enter your string:"
:: determine the length of the question
call :strLength strLen "%question%"
:: determine the number of columns in the console
for /f "tokens=2 delims=: " %%a in ('mode con ^| findstr /i Spalten') DO set consolewidth=%%a
:: calc the middle offset
set /a midoffset=%consolewidth% / 2 - %strLen%
:: create spacer string
for /L %%a in (1 1 %midoffset%) do set "spacer=!spacer! "
:: create query line
set /p "answer=%question%!spacer!"
echo Answer: %answer%
goto :eof
:: makro to determin length of a variable
:strLength
set "#=%~2"
set length=0
:stringLengthLoop
if defined # (set #=%#:~1%&set /A length += 1&goto stringLengthLoop)
set "%~1=%length%"
goto :eof

Then the above code is right for you...It determines the width of the current console automatically and creates a set /p line with the right number of spaces in line 13.