powershell从cmd运行到启动程序并退出该程序将继续运行,但是PowerShell应该退出

问题描述

在Ninja构建过程结束时,我试图在JlinkGDBServer(这是带有GUI的Windows应用程序)上运行窗口版本。

powershell从cmd

运行
cmd.exe /C "powershell  & "C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServer.exe" -port 2331 -s -CPU Cortex-M -device STM32L476RG -endian little -speed 4000 -vd &"

但是powershell不会退出(应该保留jlinkGDBserver窗口)


编辑:它是由Cmake生成的Ninja脚本运行的。我这里只有部分控制权。

解决方案:

powershell -command Start-Process -FilePath "'C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServer.exe'" -ArgumentList '-port 2331','-s','-CPU Cortex-M','-device stm32l476RG','-endian little','-speed 4000','-vd'

解决方法

如果您可以调用cmd.exepowershell.exe,则也应该可以直接调用该程序。我不知道您为什么要调用cmd.exe来调用powershell.exe来调用JLinkGDBServer.exe

除非忍者有一些细微差别,否则我不理解这应该是您运行命令所需要的:

"C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServer.exe" -port 2331 -s -CPU Cortex-M -device STM32L476RG -endian little -speed 4000 -vd

出于记录,您的PowerShell进程可能由于以下两个原因之一而没有退出:

  1. 您没有使用powershell.exe -command来调用它。这与cmd.exe /c的运行方式相似,在JLinkGDBServer.exe中运行命令并退出。忽略此参数将运行您所指定的内容,然后返回到交互模式(除非您以非交互用户身份执行)。

  2. Start-Job也有可能阻止执行,甚至在进程启动后甚至没有回到交互模式。在这种情况下,您可以使用powershell -command "Start-Job { 'C:/Program Files (x86)/SEGGER/JLink/JLinkGDBServer.exe' -port 2331 -s -CPU Cortex-M -device STM32L476RG -endian little -speed 4000 -vd" } 包装该命令,该命令将在不将其附加到当前PowerShell进程的情况下启动它。例如:

    Start-Job

    在Linux中,使用&与在命令末尾附加// pages/date/[year]/[month]/[dayOfMonth].tsx import { useRouter } from "next/router"; import { Day } from "../../../../components/Day"; type StringQueryParams = Record<keyof QueryParams,string>; interface QueryParams { year: number; month: number; dayOfMonth: number; } const transformParams = ({ year,month,dayOfMonth }: StringQueryParams): QueryParams => ({ year: parseInt(year),month: parseInt(month),dayOfMonth: parseInt(dayOfMonth),}); const DayPage: React.FC = () => { const { query } = useRouter(); const params = transformParams(query as StringQueryParams); return <Day {...params} />; }; export default DayPage; 类似,并且在此处应具有相同的效果。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...