Может кто-нибудь объяснить мне, почему:Powershell | Невозможно выполнить команду с пробелами
iex "C:\Program Files\test\test.exe"
Возвращает:
C: \ Program: Термин 'C: \ Program' не распознается как имя командлета, функции, файла сценария или операционной системы . Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку. В строке: 1 char: 1 + C: \ Program Files \ test \ test.exe + ~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (C: \ Program: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Я пытался получить эту работу несколько различных способов:
- обернув текст в
()
- Ввод строки в переменную и передать его в качестве переменной вместо
- Используя одиночные кавычки
- Используя двойные кавычки
Я не знаю, как еще я могу получить его, чтобы понять, что вся строка должна быть запущенным, а не только первым словом.
после ответил пример
вопрос был дан ответ. Вот то, что я пытался получить работу:
$tool = "C:\Windows\System32\cmd.exe"
$param = "/c ping google.com -n 1"
$test = & $tool $param
Write-Host $test
Оказывается, что линия с &
не работает с двойными кавычками ""
в данном случае, и на самом деле работали без них. Я думаю, что это связано с тем, что есть аргументы/параметры.
Так это дело только не потому, что это вызов исполняемого файла в , и ДОЛЖЕН предшествовать символ '&'? –
Вам нужно использовать кавычки из-за пробела, но когда вы это сделаете, PowerShell думает, что вы только что ввели строку. Например, если вы введете '' hello'' в кавычки, PowerShell не попытается его выполнить. Это просто строка. Вот почему вам нужен оператор & «вызова», когда строка представляет собой команду. –
Хорошо, похоже, я получил то, что мне нужно, чтобы работать без кавычек. Я поставлю это на свой вопрос, чтобы вы знали, о чем я говорю. –