我运行以下命令脚本:
<!-- 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在后台启动。为什么这在脚本块中不起作用?
答案 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搜索上次运行的命令历史记录。