我运行以下命令脚本:
$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 搜索上次运行命令的命令历史记录。