Вызов команды PowerShell V6 не работает в сценарии - PullRequest
0 голосов
/ 20 октября 2019

Я запускаю этот командный скрипт:

$hm = "$Env:USERPROFILE" $eclipse_path = "$hm\eclipse\committers-2019-09\eclipse\eclipse.exe" $sp = { "$eclipse_path -data C:\SharedData\Projects\Tutorial &" Write-Host "Eclipse starting" } Invoke-Command -ScriptBlock $sp

со следующими результатами:

>>> bin/dev.ps1 C:\Users\jgoss\eclipse\committers-2019-09\eclipse\eclipse.exe -data C:\SharedData\Projects\Tutorial & Eclipse starting >>>

Похоже, что основная командане был выполнен, но команда echo была выполнена. Если я запускаю основную команду автономно в Windows Terminal, как показано на рисунке, команда работает так, как нужно:

>>> C:\Users\jgoss\eclipse\committers-2019-09\eclipse\eclipse.exe -data C:\SharedData\Projects\Tutorial &

Я просто вырезал и вставил содержимое первой команды в блок скрипта, и она работала так, как я хочу. Программа eclipse.exe была запущена в фоновом режиме. Почему это не работает в блоке скрипта?

1 Ответ

1 голос
/ 20 октября 2019

Это заставит его работать, но есть более простые способы сделать это. Я использую блокнот в качестве примера, который любой может воспроизвести.

$hm = "c:\windows\system32"
$eclipse_path = "$hm\notepad.exe"
$sp = {
  & $eclipse_path c:\users\js\foo\note.ps1
  Write-Host "Eclipse starting" } 
Invoke-Command -ScriptBlock $sp

Например, в вашем профиле $ вы можете добавить папку eclipse к своему пути:

$eclipse_path = "$home\eclipse\committers-2019-09\eclipse"
$env:path += $eclipse_path

Затем вы можете просто запустить eclipse и любое имя файла. Вы можете использовать control-r для поиска в истории команд в последний раз, когда вы ее запускали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...