PowerShell V6命令调用在脚本中不起作用

时间:2019-10-20 13:01:39

标签: powershell

我运行以下命令脚本:

<!-- Invisible reCAPTCHA dynamically rendered. --> <div id='create-account-captcha' class="g-recaptcha"></div>

具有以下结果:

$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

似乎没有执行主命令,而是执行了echo命令。如果我如图所示在Windows Terminal中独立运行主命令,则该命令将按预期运行:

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

我只是将第一个命令的内容剪切并粘贴到脚本块中,并且按我的意愿工作。程序eclipse.exe在后台启动。为什么这在脚本块中不起作用?

1 个答案:

答案 0 :(得分:1)

这可以使它正常工作,但是有更简单的方法可以做到这一点。我以记事本为例,任何人都可以复制。

$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

例如,在您的$ profile中,您可以将eclipse文件夹添加到您的路径中:

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

然后,您可以简单地运行eclipse和任何文件名。您可以使用control-r搜索上次运行的命令历史记录。