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



我运行以下命令脚本:

$hm = "$Env:USERPROFILE" $eclipse_path = "$hmeclipsecommitters-2019-09eclipseeclipse.exe" $sp = { "$eclipse_path -data C:SharedDataProjectsTutorial &" Write-Host "Eclipse starting" } Invoke-Command -ScriptBlock $sp

结果如下:

>>> bin/dev.ps1 C:Usersjgosseclipsecommitters-2019-09eclipseeclipse.exe -data C:SharedDataProjectsTutorial & Eclipse starting >>>

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

>>> C:Usersjgosseclipsecommitters-2019-09eclipseeclipse.exe -data C:SharedDataProjectsTutorial &

我只是在脚本块中剪切并粘贴第一个命令的内容,它就可以按照我想要的方式工作。程序日食.exe是在后台启动的。为什么这在脚本块中不起作用?

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

$hm = "c:windowssystem32"
$eclipse_path = "$hmnotepad.exe"
$sp = {
& $eclipse_path c:usersjsfoonote.ps1
Write-Host "Eclipse starting" } 
Invoke-Command -ScriptBlock $sp

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

$eclipse_path = "$homeeclipsecommitters-2019-09eclipse"
$env:path += $eclipse_path

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

最新更新