You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本问题:单个新窗口子目录执行命令并保持窗口打开

PowerShell 单窗口执行多命令解决方案

核心问题是每次调用Start-Process powershell.exe都会启动新进程,多调用就会多开窗口。要在同一个窗口完成切换目录+执行命令+保持窗口的操作,需将所有操作合并为一个命令序列,传递给单个PowerShell进程。

正确脚本示例

$dir = $PSScriptRoot
$folder = '\MyFolder'
$subdir = Join-Path -Path $dir -ChildPath $folder  # 安全拼接路径,自动处理分隔符
$message = "hello world"

# 合并命令并启动单窗口
Start-Process powershell.exe -ArgumentList "-NoExit", "-Command", "cd `"$subdir`"; Write-Output `"$message`""

关键要点

  • 用分号分隔命令:cd "$subdir"; Write-Output "$message" 让两个命令在同一个PowerShell会话中依次执行
  • 使用-ArgumentList传递参数:比直接拼接字符串更安全,避免路径/命令含空格时的解析错误
  • 路径拼接用Join-Path:替代手动字符串拼接,自动适配系统路径规则,避免斜杠冗余或缺失
  • 转义双引号:命令中的路径和字符串用"转义,确保新进程能正确解析内容

替换为实际命令(如dotnet watch)

如果要执行dotnet watch,直接替换命令部分即可:

Start-Process powershell.exe -ArgumentList "-NoExit", "-Command", "cd `"$subdir`"; dotnet watch"

之前脚本的错误原因

  • 第一段脚本:命令未用分号分隔,导致cd和Write-Output被合并为无效命令,触发意外进程启动
  • 第二段脚本:连续调用两次Start-Process,直接启动两个独立的PowerShell窗口

内容的提问来源于stack exchange,提问作者99wc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:35:28