Мне нужно создать строку, которая на самом деле является командной строкой, а затем выполнить содержимое этой командной строки. Я надеялся, что оператор вызова (&) поможет, но похоже, что нет. Вот простой надуманный пример. Следующие работы, как и ожидалось, он пингует сайт:Создайте строку, которая будет передана оператору вызова
$command = "ping"
$website = "www.bbc.co.uk"
& $command $website
однако, если я могу изменить его к этому:
$command = "ping"
$website = "www.bbc.co.uk"
$cmd = "$command $website"
& $cmd
Я получаю сообщение об ошибке:
The term 'ping www.bbc.co.uk' is not recognized as the name of a cmdlet, function, script file, or operable program.
Есть ли способ динамически создавать командную строку в виде строки, а затем выполнять ее?
использовать 'iex $ cmd' вместо –
Спасибо @CB., Что действительно работает для моего надуманного примера. Однако, похоже, мой надуманный пример недостаточно репрезентативен. То, что я действительно хочу сделать, это вызвать .exe, поэтому на самом деле я делаю что-то более похожее на это: $ cmd = "C: \ somepath \ someprogram.exe" iex $ cmd Результат от этого просто: C: \ somepath \ someprogram.exe , т. Е. Не выполняет someprogram.exe. Любая идея почему? – jamiet
@CB. Поскольку мой тривиальный пример выше не был достаточно репрезентативным, я снова разместил его здесь: http://stackoverflow.com/questions/28453865/execute-an-exe-using-the-call-operator – jamiet