Изучение PowerShell. Но я пытаюсь сделать из определенного места открыть командную строку, а затем выполнить команду.
До сих пор я мог указать местоположение и открыть командную строку, но не могу запустить команду
пока я пробовал это
Set-Location "F:\Projects\GameManagement\server"
start cmd.exe
И я также пробовал процесс запуска, но не знаю, как установить местоположение и открыть с помощью конкретной программы.
Команда, которую я пытаюсь отправить в командную строку, - это nodemon index.js. Какие-либо предложения?
Спасибо
Как и cmd.exe
, PowerShell представляет собой оболочка, что означает, что вы можете вызывать консольные приложения напрямую, которые их запускают синхронно:
Set-Location F:\Projects\GameManagement\server
nodemon index.js
Если исполняемый файл nodemon
также находится в F:\Projects\GameManagement\server
, вы должны заменить последнюю строку на
.
.\nodemon index.js
, как указывает Роберт Коттерман, потому что PowerShell, в отличие от cmd.exe
, не разрешает запуск исполняемых файлов, расположенных в текущем каталоге, только по имени из соображений безопасности.
Изнутри PowerShell редко возникает необходимость вызывать cmd.exe
- просто используйте сам PowerShell.
Хороший совет по .\nodemon
, @RobertCotterman, спасибо; Я добавил это к ответу. Однако здесь нет необходимости в Invoke-Expression
, который как правило, следует избегать.
Я стараюсь отвечать то, что понимаю, так, чтобы можно было ответить на все варианты. Поскольку другие пользователи могут когда-нибудь прочитать это и понять это лучше. В любом случае спасибо за вотум доверия. Выражение-вызов было создано для того, чтобы переменная использовалась в команде. Может, я неправильно понимаю, как это работает.
@RobertCotterman: используйте &
, оператор вызова, для вызова исполняемых файлов, указанных через строку в кавычках и / или через ссылку на переменную: & $path\nodemon $path\index.js
который работает сейчас ищет способ убить процесс @ mklement0
я предполагаю, что ему может понадобиться
.\nodemon index.js
, или он мог бы просто сделать$path = "F:\Projects\GameManagement\server"
, а затемinvoke-expression "$path\nodemon $path\index.js"
, место установки должно гарантировать, что он работает внутри этой папки