问题描述
我在尝试运行一个PowerShell脚本时遇到了错误,终端显示多个位置缺少大括号。具体错误信息如下:
(TraeAI-12) D:\GuardianBank Program\start-project [0:] $ powershell -File 'd:\\GuardianBank Program\\start-project\\start-project.ps1'
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:77 字符: 14
+ if (-not $?) {
+ ~
语句块或类型定义中缺少右“}”。
语句块或类型定义中缺少右“}”。
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
+ if (-not $?) {
+ ~
语句块或类型定义中缺少右“}”。
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
+ if (-not $?) {
+ ~
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
+ if (-not $?) {
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
语句块或类型定义中缺少右“}”。
语句块或类型定义中缺少右“}”。
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:66 字符: 14
+ if (-not $?) {
+ ~
语句块或类型定义中缺少右“}”。
所在位置 D:\GuardianBank Program\start-project\start-project.ps1:37 字符: 14
+ if (-not $?) {
+ ~
语句块或类型定义中缺少右“}”。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace
...
相关代码片段
以下是脚本的代码以及github仓库地址:
https://github.com/CelestialVisionary/GuardianBank-Program/blob/main/start-project/start-project.ps1
# GuardianBank项目启动脚本(PowerShell版)
# 设置项目根目录
$PROJECT_ROOT = Split-Path -Parent $MyInvocation.MyCommand.Path
$PROJECT_ROOT = Split-Path -Parent $PROJECT_ROOT
# 检查依赖
Write-Host "[1/5] 正在检查依赖..."
if (-not (Get-Command "mvn" -ErrorAction SilentlyContinue)) {
Write-Host "错误: 未找到 Maven,请确保已安装 Maven 并添加到环境变量中。"
pause
exit 1
}
if (-not (Get-Command "node" -ErrorAction SilentlyContinue)) {
Write-Host "错误: 未找到 Node.js,请确保已安装 Node.js 并添加到环境变量中。"
pause
exit 1
}
if (-not (Get-Command "npm" -ErrorAction SilentlyContinue)) {
Write-Host "错误: 未找到 npm,请确保已安装 Node.js (包含 npm) 并添加到环境变量中。"
pause
exit 1
}
Write-Host "依赖检查完成!"
# 构建后端
Write-Host "[2/5] 正在构建后端服务..."
Set-Location -Path "$PROJECT_ROOT\backend"
if (-not $?) {
Write-Host "错误: 无法切换到后端目录。"
pause
exit 1
}
mvn clean package -DskipTests
if (-not $?) {
Write-Host "错误: 后端构建失败。"
pause
exit 1
}
Write-Host "后端构建完成!"
# 启动后端
Write-Host "[3/5] 正在启动后端服务..."
Start-Process -FilePath "java" -ArgumentList "-jar", "target\guardianbank-backend-1.0.0.jar" -WindowStyle NewWindow
if (-not $?) {
Write-Host "错误: 后端服务启动失败。"
pause
exit 1
}
Write-Host "后端服务已启动!"
# 安装前端依赖
Write-Host "[4/5] 正在安装前端依赖..."
Set-Location -Path "$PROJECT_ROOT\frontend"
if (-not $?) {
Write-Host "错误: 无法切换到前端目录。"
pause
exit 1
}
npm install
if (-not $?) {
Write-Host "错误: 前端依赖安装失败。"
pause
exit 1
}
Write-Host "前端依赖安装完成!"
# 启动前端
Write-Host "[5/5] 正在启动前端服务..."
Start-Process -FilePath "npm" -ArgumentList "start" -WindowStyle NewWindow
if (-not $?) {
Write-Host "错误: 前端服务启动失败。"
pause
exit 1
}
Write-Host "前端服务已启动!"
# 等待服务启动
Write-Host "正在等待服务启动..."
Start-Sleep -Seconds 20
# 显示启动成功信息
Clear-Host
Write-Host "====================================="
Write-Host "项目启动成功!"
Write-Host "-------------------------------------"
Write-Host "后端服务已在新窗口启动"
Write-Host "前端服务已在新窗口启动"
Write-Host "请确保两个服务都正常运行"
Write-Host ""
Write-Host "访问地址:"
Write-Host "前端: http://localhost:3000"
Write-Host "后端: http://localhost:8080"
Write-Host ""
Write-Host "按任意键停止所有服务并退出..."
Write-Host "====================================="
# 等待用户按键
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')
# 停止服务
Write-Host "正在停止所有服务..."
Get-Process -Name "java" -ErrorAction SilentlyContinue | Stop-Process -Force
Get-Process -Name "node" -ErrorAction SilentlyContinue | Stop-Process -Force
Write-Host "所有服务已停止。"
Write-Host "感谢使用 GuardianBank 项目启动脚本!"
pause
运行结果及报错内容
当我执行以下命令时出现上述错误:
powershell -File 'd:\\GuardianBank Program\\start-project\\start-project.ps1'
我的初步解答思路
我检查了脚本中的所有if语句和其他可能需要闭合的大括号,但没有发现明显的遗漏。
操作环境、软件版本等信息
操作系统:
- 版本:Windows 11 家庭中文版
- 操作系统版本:26100.4946
PowerShell 版本:
Major Minor Build Revision ----- ----- ----- -------- 5 1 26100 4768脚本文件路径:D:\GuardianBank Program\start-project\start-project.ps1
附件
