2015-12-10 4 views
2

Предположим, у меня есть приложение командной строки Windows (abc.exe) в: C:\test папке. Я поставил файл сценария powershell в том же месте.PowerShell: запустить приложение командной строки из powershell

с помощью этой команды я установить текущее местоположение на то место, где мой скрипт запускается из:

Set-Location $PSScriptRoot 

мне нужно запустить abc.exe изнутри моего сценария, так что, нажав Ctrl + C в окне выполнения моего сценария, он также заканчивается abc.exe.

Если я использую этот синтаксис: C:\test\abc.exe в моем сценарии, все как то, что я хочу. но проблема в том, что я не хочу, чтобы жестко закодировать расположение abc.exe в моем сценарии, поскольку пользователь может изменить его (примечание:abc.exe всегда будет находиться в том же месте, как мой сценарий).

Если я просто Применение: abc.exe я получаю:

& : The term 'abc.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. 

Что я должен делать?

Update: В окна Batch сценариев, нажатие Ctrl + C в такой ситуации будет легко заканчивается как выполнение скрипта и командной строки приложения

+1

заказ: http://stackoverflow.com/questions/4724290/powershell-run-command-from-scripts-directory. Также обратите внимание, используйте «. \ Abc.exe» для ссылки на команду в текущем каталоге. – dugas

+0

Я читал это, но не мог понять, что делать – wiki

+0

Какую часть вы не могли понять? – dugas

ответ

0

ли ваша попытка это ...

Start-Process -PSPath "C:\test\abc.exe" -WorkingDirectory "C:\test" -NoNewWindow 

Второе предложение:

Start-Process -PSPath "C:\test\abc.exe" -WorkingDirectory "C:\test" -NoNewWindow -Wait 
+0

Я хочу получить результаты и взаимодействия abc.exe из моего сценария (например, в пакетных сценариях), не открывая полностью отдельное окно для запуска abc.exe – wiki

+0

См. Второе предложение в ответе. – Buxmaniak