Anführungszeichen werden in Batch gar nicht escaped sondern verdoppelt (oder vervierfacht). Escapen muss man nur Pipe (|), Umleitungen (< und >) sowie Befehlsgruppierungen (& und &&) und ggf. Klammern (welche ebenfalls der Befehlsgruppierung dienen).
Davon abgesehen frage ich mich aber noch, warum du die EXE nicht direkt ausführst. Das geht doch einfacher als der Umweg über CMD, oder nicht?
Ergänzung: Zur Expandierung von Umgebungsvariablen nutze ich diese Funktion:
Delphi-Quellcode:
function ExpandEnvStr(
const sInput:
string):
string;
const
MAXSIZE = 32768;
// laut PSDK sind 32k das Maximum
begin
SetLength(Result, MAXSIZE);
SetLength(Result,
ExpandEnvironmentStrings(PChar(sInput), @Result[1], Length(Result))-1);
//-1 um abschließendes #0 zu verwerfen
end;
Die wird aber wahrscheinlich nicht mit WideStrings/
Unicode funktionieren, schätze ich (ich weiß es nicht, weil ich bisher keine Notwendigkeit hatte, meine Programme darauf anzupassen und/oder zu testen).
MfG Dalai