Ich mache ein Spiel, und möchte die Dialoge verschiedene Zeichen sagen sagen. Alles funktioniert gut, aber nur wenn ich nicht '?' in der Call-Funktion, mit der der Text eingefärbt wird (erscheint als FINDSTR-Fehler). Ich kann jedoch ein Ausrufezeichen ohne Probleme verwenden. Irgendwelche Ideen, wie das zu beheben ist?"FINDSTR:" Fehler bei der Verwendung von Sonderzeichen in einer Anruffunktion (Batch)
Nur für den Fall, ich habe den Code, der den Text einfärbt.
EDIT: Dieser Teil geht ganz oben in der Batch-Datei.
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
Dieser Teil geht am unteren Ende der Batchdatei.
:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
Dies ist der Fehler, der aufkommt:
The filename, directory name, or volume label syntax is incorrect.
FINDSTR: Cannot open 'When did it get so dark outside?' It was morning a few minutes ago...
Das 'i' in der letzten Zeile des Codes ist ein Tippfehler, richtig? Bitte geben Sie eine Beispiel-Befehlszeile, wie Sie die angegebene Routine aufrufen und sagen Sie uns, was% DEL% auf ... – aschipfl
gesetzt ist Zweifel, dass "i" ein Tippfehler ist. So würde ich die Routine aufrufen: 'call: colorEcho [color]" Text "' '% DEL%' ist auf '%% a' gesetzt. – FudgeMuffins
Das 'i' ist in der Tat ein Tippfehler, aber es schadet anscheinend nicht; Bitte fügen Sie die Befehlszeile "call" in Ihren Fragepost ein ... – aschipfl