【问题标题】:Exit command without waiting to finish退出命令而不等待完成
【发布时间】:2020-01-06 11:55:55
【问题描述】:

我正在尝试使用 SparkAR CLI 导出 SparkAR 文件,但是在脚本成功导出文件后它不会退出该过程,例如:

sparkTerminalBinaryWindows.exe export .\Project.arproj -d .\exportDestination

当我运行这个命令时,它会输出:

Starting to export project file at path: ".\Project.arproj"...
Successfully exported project file at path ".\Project.arproj" to path ".\exportDestination\Project.arexport".

但是在这个输出过程没有退出之后,如果我运行这样的东西

sparkTerminalBinaryWindows.exe export .\Project.arproj -d .\exportDestination && echo "Second command"

第二条命令echo "Second command" 永远不会运行

可以做的是

  1. 听第一个命令的输出,当我看到关键字“成功”时退出命令

  2. 进程最多需要 10 秒才能完成,所以也许我可以给第一个命令一个超时,最终它会在 10 秒后超时退出

但是我没有使用 Windows 终端或 PowerShell 的经验。我试图寻找解决方案,但找不到任何东西。

我该如何解决这个问题?

【问题讨论】:

  • 那么你在运行什么? PowerShell 还是 cmd?如果这个过程永远不会结束,那你永远看不到以下命令的输出也就不足为奇了。
  • 可能是该命令写得不好并分离控制台或一直等待输入等。看看如果你使用Start-Job (Start-Job { ... } | Wait-Job | Receive-Job) 运行它会发生什么。如果它真的永远不会完成,您需要杀死它,但这通常不是您想要做的。
  • 我在 powershell 和 cmd 都试过了。问题是,cli 是由 facebook sparkar 团队编写的,向他们报告错误需要 30 多天来修补它,所以我试图自己解决它以自动化我的过程。我正在尝试在 10 秒后或在我看到带有关键字“成功”的输出后找到终止进程的解决方案
  • 我在 mac 上尝试过同样的事情,它可以工作,但在成功导出后我得到:分段错误:11。我使用这个命令:sparkTerminalAppleMac export projName.arproj -d $(pwd)跨度>

标签: windows powershell command-line spark-ar-studio


【解决方案1】:

通过管道将其传递到 where-object 然后 select-object -first。选择将杀死管道。

& { while (1) { sleep 5; 'successfully' } } | 
  where { $_ -match 'successfully' } | select -first 1

successfully

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 2013-04-03
    • 2015-06-13
    • 1970-01-01
    相关资源
    最近更新 更多