Puedo expresar mi necesidad con el siguiente escenario: Escriba una función que acepte una cadena para ejecutarse como un comando nativo.
No es una idea demasiado descabellada: si está interactuando con otras utilidades de línea de comandos de otras partes de la compañía que le proporcionan un comando para ejecutar textualmente. Debido a que no controla el comando, debe aceptar cualquier comando válido como entrada . Estos son los principales problemas que no he podido superar fácilmente:
El comando podría ejecutar un programa que vive en una ruta con un espacio en él:
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
El comando puede tener parámetros con espacios en ellos:
$command = 'echo "hello world!"';
El comando puede tener marcas simples y dobles:
$command = "echo `"it`'s`"";
¿Hay alguna forma limpia de lograr esto? Solo he sido capaz de idear soluciones fastuosas y feas, pero para un lenguaje de script creo que esto debería ser muy simple.