Was mache ich bei dieser Codezusammensetzung falsch?

...komplette Frage anzeigen Hier der Fehler... - (Computer, Windows, Programm)

2 Antworten

EXIT ist ein Befehl und wird ohne Anführungszeichen auch als Befehl interpretiert.

Im übrigen solltest Du den If-Schalter /i hinzufügen , um im Vergleich die GROSS/klein-Schreibung zu ignorieren.

Außerdem kannst Du mit der Sprungmarke ":eof" (= end of file) die Verarbeitung der Batch abbrechen, ohne eine explizite Sprungmarke setzen zu müssen. ":eof" selbst muss dabei nicht gesetzt werden.

Zusätzlich ist es sinnvoller für einen Zeichenvergleich auch das Gleichheitszeichen zu benutzen.

if /i "%ENT%" == "EXIT" goto :eof


Antwort bewerten Vielen Dank für Deine Bewertung
Proximus553 18.07.2016, 20:47

Danke aber am EXIT lag's nicht, ebenso wenig wie am if /i oder dem eof, das war beabsichtigt da bei end noch andere befehle ausgeführt werden, hast du noch ne Idee bezüglich dem Inhalt?

0
MarkusGenervt 18.07.2016, 20:51
@Proximus553

Hast Du es mal mit Anführungszeichen und == (also ohne EQU) versucht?

EQU & Co. werten Integer aus. d.h. dass die Operanden in Integer umgewandelt und verglichen werden.

/i und :eof war nur ein Tipp

"SAPI.spvoice" kann ich leider nichts zu sagen. Mit dem Modul hatte ich bisher nichts zu tun.


0
MarkusGenervt 18.07.2016, 21:03
@MarkusGenervt

Noch ein Tipp:
Ich finde diese VBS-Erstellung mit Batch immer sehr "unelegant". Schreib doch ein VBS-Skript, welches per Parameter einen Job erledigt. Dann ist es wieder benutzbar und der Batch-Code reduziert sich erheblich.

z.B.:

set objvoice=createobject("SAPI.spvoice")
With WScript.Arguments.Unnamed
For ID = 0 To .Count
objvoice.speak .Item(ID)
'hier evtl. Pause bis Rückmeldung "Fertig"
Next
End With
wscript speak.vbs "%ENT%"
0

HAB DIE LÖSUNG BZW. DEN FEHLER GEFUNDEN, VIELEN DANK AN ALLE  :)

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?