Ich kann meine Notwendigkeit mit dem folgenden Szenario ausdrücken: Schreiben Sie eine Funktion, die eine Zeichenfolge akzeptiert, die als nativer Befehl ausgeführt werden soll.
Eine Idee ist nicht allzu weit hergeholt: Wenn Sie mit anderen Befehlszeilenprogrammen von anderen Stellen im Unternehmen zusammenarbeiten, die Ihnen einen Befehl zum wörtlichen Ausführen liefern. Da Sie den Befehl nicht steuern, müssen Sie einen gültigen Befehl als Eingabe akzeptieren . Dies sind die Hauptprobleme, die ich nicht leicht überwinden konnte:
Der Befehl kann ein Programm ausführen, das in einem Pfad mit einem Leerzeichen darin lebt:
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
Der Befehl kann Parameter mit Leerzeichen enthalten:
$command = 'echo "hello world!"';
Der Befehl kann sowohl einfache als auch doppelte Häkchen haben:
$command = "echo `"it`'s`"";
Gibt es einen sauberen Weg, dies zu erreichen? Ich war nur in der Lage, aufwändige und hässliche Problemumgehungen zu entwickeln, aber für eine Skriptsprache sollte dies meiner Meinung nach kinderleicht sein.