Как запустить команду cmd с помощью PowerShell

Я пытаюсь запустить команду cmd с помощью Powershell.

CMD

cd C:\apache-jmeter-5.2.1\bin
jmeter -n -t C:\User-search.jmx -l C:\Result.jtl

Powershell

$command = @'
cmd.exe /C C:\apache-jmeter-5.2.1\bin\jmeter -n -t C:\User-search.jmx -l C:\Result.jtl
'@

Invoke-Expression -Command:$command

Ошибка

cmd.exe : The term 'cmd.exe' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again.

Вкратце: Invoke-Expression обычно следует избегать < / а>; определенно не используйте его для вызова внешней программы. Кроме того, обычно нет необходимости вызывать внешнюю программу через cmd.exe (cmd /c ...), просто вызывайте ее напрямую.   —  person rAJ    schedule 24.02.2020

Это спорный вопрос, потому что вызов C:\apache-jmeter-5.2.1\bin\jmeter -n -t C:\User-search.jmx -l C:\Result.jtl as-is решает вашу проблему, но ваш symtpom не может быть объяснен с помощью кода, который вы опубликовали.   —  person rAJ    schedule 24.02.2020

Две команды в CMD — ›отлично работают с использованием командной строки. Я просто пытаюсь объединить две строки в одну и хочу запустить Powershell.   —  person rAJ    schedule 24.02.2020

Затем используйте команду из моего предыдущего комментария как есть — нет необходимости в опрометчивых Invoke-Expression или каких-либо других командлетах. PowerShell — это оболочка, что означает, что она может вызывать внешние программы напрямую — см. Связанный пост для получения дополнительной информации.   —  person rAJ    schedule 24.02.2020

Спасибо. но в этом случае я столкнулся с ошибкой — ›Не удалось найти исполняемый файл или версию Java. Пожалуйста, проверьте вашу установку Java. errorlevel = 2   —  person rAJ    schedule 24.02.2020

Это несвязанная проблема; это свидетельство того, что вызов в принципе работал, но вызываемая вами программа не может найти java.exe; единственное различие между вашей cmd командой и тем, что вы пробовали в PowerShell, заключается в том, что вы сначала не cd сделали C:\apache-jmeter-5.2.1\bin в PowerShell, так что, возможно, это причина — просто сначала запустите cd C:\apache-jmeter-5.2.1\bin в PowerShell (cd в PowerShell — это встроенный псевдоним для командлета Set-Location).   —  person rAJ    schedule 24.02.2020

См. также:  Psexec отображает только первую строку через Jenkins

не повезло. та же ошибка. я должен задать для этого новый вопрос?   —  person rAJ    schedule 24.02.2020

Пожалуйста, сделайте это и используйте предложенный мной метод прямого вызова вместе с тем, что gcm java.exe показывает в PowerShell и чем %PATH% в cmd.exe отличается от $env:Path в PowerShell.   —  person rAJ    schedule 24.02.2020

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: