Posso esprimere la mia necessità con il seguente scenario: Scrivere una funzione che accetti una stringa da eseguire come comando nativo.
Non è troppo preso da un'idea: se stai interfacciarsi con altre utility da riga di comando da altre parti dell'azienda che ti forniscono un comando per eseguire testualmente. Poiché non si controlla il comando, è necessario accettare qualsiasi comando valido come input . Questi sono i principali singhiozzi che non sono stato in grado di superare facilmente:
Il comando potrebbe eseguire un programma che vive in un percorso con uno spazio al suo interno:
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
Il comando può avere parametri con spazi in essi:
$command = 'echo "hello world!"';
Il comando potrebbe avere segni di spunta sia singoli che doppi:
$command = "echo `"it`'s`"";
C'è un modo pulito per ottenere questo risultato? Sono stato solo in grado di escogitare soluzioni sontuose e sgradevoli, ma per un linguaggio di scripting penso che questo dovrebbe essere completamente semplice.