Я могу выразить свою потребность в следующем сценарии: Напишите функцию, которая принимает строку для запуска как собственную команду.
Идея не слишком далека: если вы взаимодействуете с другими утилитами командной строки из другой части компании, которые предоставляют вам команду для дословного запуска. Поскольку вы не управляете командой, вам необходимо принять любую допустимую команду в качестве ввода . Вот основные икоты, которые я не смог легко преодолеть:
Команда может выполнить программу, находящуюся в пути с пробелом в ней:
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
Команда может иметь параметры с пробелами в них:
$command = 'echo "hello world!"';
Команда может иметь одинарные и двойные галочки:
$command = "echo `"it`'s`"";
Есть ли какой-нибудь чистый способ сделать это? Я только смог придумать обильные и безобразные обходные пути, но для языка сценариев я чувствую, что это должно быть очень просто.