BATCH TEXT VORLESEN LASSEN?
HI ich habe mal vor einiger zeit eine Datei erstellt in der ein Text Vorgelesen wir allerdings habe ich vergessen wie es wieder geht
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
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
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
_____________________________________________________
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!