Escape-Zeichen für die Windows-Befehlszeile

Escape-Zeichen für die Windows-Befehlszeile

Kurz gesagt: Wir erhalten einen Befehl von einem Skript und möchten ihn mithilfe der Windows-Shell ausführen.

Derzeit verwenden wir eine Methode ähnlich der:

echo start & command & echo finish

Das funktioniert einwandfrei, es sei denn, der Befehl enthält ein eigenes Et-Zeichen, also zum Beispiel

echo begin & if exist c:\temp.txt echo 1 & echo endDas Schreiben von „Ende“ schlägt fehl, wenn die Datei nicht existiert.

Dies kann gelöst werden, indem der Befehl in geändert wird echo begin & (if exist c:\temp.txt echo 1) & echo end. Dann treten jedoch Probleme bei Befehlen auf, die Klammersymbole enthalten, beispielsweise

echo begin & (echo %PATH%) & echo enddruckt „\Hewlett-Packard\HP war zu diesem Zeitpunkt unerwartet.“ weil ich Programme (x86) im Pfad habe.

Gibt es eine Möglichkeit, Sonderzeichen aus dem Befehlsergebnis zu maskieren?

Dank im Voraus

Antwort1

Das Problem sind die Leerzeichen im PATH. Verwenden Sie daher Anführungszeichen.

  echo begin & (echo "%PATH%") & echo end

verwandte Informationen