BATCH TEXT VORLESEN LASSEN?

2 Antworten

das geht auch ohne Fremdprogramme wie Nirsoft:

@echo off
  rem Umlaute erlauben
chcp 65001>nul
  rem pfad für das Hilfsscript
set "sayJS=%temp%\say.js"
set "Speed=-1"
set "Volume=100" 
echo s=new ActiveXObject('SAPI.SpVoice');s.Rate=%Speed%;s.Volume=%Volume%;a='';for (i=0;i^<WScript.Arguments.length;i++){a+=WScript.Arguments(i)+' '};s.Speak(a,0)>"%sayJS%"
set talk=cscript //nologo "%sayJS%"


%talk% Hallo ich bin Deine Batch.
%talk% und ich Quasle
%talk% Es ist %time:~0,5% Uhr
pause

Mehr dazu https://www.gutefrage.net/frage/sprechende-batch#answer-376523584

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
Erzesel  24.02.2021, 09:22

Ps Textdatei vorlesen:

demo.txt

Der Richter zum Angeklagten:
"Sie sind beschuldigt, Ihren Nachbarn unter Schimpfworten in den Wald getrieben und dort ganz fürchterlich verprügelt zu haben.
 Sind Sie da nicht ein bisschen zu weit gegangen, Angeklagter?"
Antwort: "Ja, das stimmt, Herr Richter!
Ich hätte es schon vorher auf der Wiese tun sollen!"

Vorlese.cmd

@echo off
  rem Umlaute erlauben
chcp 65001>nul
if "%~1"=="" (
    echo zum vorlesen ziehe eien Textdatei auf "%~nx0"
    pause
    exit /b
)
  rem pfad für das Hilfsscript
set "sayJS=%temp%\say.js"
set "Speed=-1"
set "Volume=100" 
echo s=new ActiveXObject('SAPI.SpVoice');s.Rate=%Speed%;s.Volume=%Volume%;a='';for (i=0;i^<WScript.Arguments.length;i++){a+=WScript.Arguments(i)+' '};s.Speak(a,0)>"%sayJS%"
set talk=cscript //nologo "%sayJS%"
  rem übergebene Datei vorlesen 
for /f "usebackq tokens=*" %%a in ("%~f1") do (%talk% %%a)
pause
1

Das geht recht einfach mit NirCmd: [1]

nircmd speak text "Dein Text"

Ich hab mir dafür mal ne kleine Function gebaut:

:SPEAK (String text, int rate) {
	if "%~2"=="" ( set rate=1 ) else ( set rate=%~2 )
	nircmd speak text "%~1" %rate%
	exit /b
}

kann man dann einfach mit einem String und einer Sprechgeschwindigkeit zwischen -10 und 10 aufrufen:

call :speak "Hallo Welt" -10

_____________________________________________________

[1] http://www.nirsoft.net/utils/nircmd.html

Woher ich das weiß:Hobby
Erzesel  24.02.2021, 08:58

Bequem...ja...

...aber... wenn man die Batch weitergeben oder auf einem fremden Rechner (wie zum Beispiel in der Schule) vorführen will, wird's mit Deiner Lösung ziemlich eng 😥.

Ich bezweifle , das es erlaubt ist auf eien Fremden Rechner eine Fremdsoftware zu installieren!

0