Batch Script Wort Schreiben?

2 Antworten

Batch hat eigentlich keinen Befehl, welche in der gleiche Zeile weiterschreibt.

...Aber einen Befehl in den man in der gleichen Zeile weiter schreiben kann bis man Enter drückt.

set /p "variable=gib was ein:"

naja jetzt muss man set/p nur noch sagen das die Eingabe "Nichts" aus dem "Nichts" kommt (<nul) und schon bleibt der Cursor brav dort wo er nach Ausgabe des (Auforderungs)Textes war ... und wartet auf die nächste Ausgabe...

demo1.cmd

@echo off
<nul set /p "=H"
timeout 1 >nul
<nul set /p "=a"
timeout 1 >nul
<nul set /p "=l"
timeout 1 >nul
<nul set /p "=l"
timeout 1 >nul
echo o
pause

solcher Spagetticode ist natürlich blöd da ohnehin immer das gleiche gemacht wird geht auch ein For-Loop:

@echo off
for %%a in (h a l l "o " W e l) do (
  <nul set /p "=%%~a"
  timeout 1 >nul
)
echo t
pause

Vor langer Zeit habe ich eine recht vielseitige Subroutine geschrieben , welche das eigentliche Programmieren solcher Geisterschreibmaschinen um einiges vereinfacht. Man übergibt der Subroutine :GostType einfach nur den Text...

siehe:

...und Dir dürfte klar werden, das Batch absolut keine Sprache für Anfänger ist.

In Powershell ist das ein Kinderspiel:

Demo.ps1

$Text='Hallo Welt!
Ich bin ein Text
ueber mehrere Zeilen.
'
$Delay=100
[char[]]$Text|%{
  Write-Host "$_" -NoNewline -Foreground green
  if ( !($Text.Length -eq ++$i)) {Start-Sleep -m $Delay}
}
pause

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