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

如何用PowerShell的ForEach循环读取.exe版本并执行对应批次函数

现有代码核心问题

  • 数据类型不匹配:你已经提前取出了ProductVersion字符串存入数组,循环时又调用$item.VersionInfo.ProductVersion,属于重复取值且无法拿到有效数据
  • 语法结构错误:if代码块提前闭合,elseif分支写在foreach循环外,逻辑完全无法正常执行
  • 变量定义错误:重复给$prod3赋值,数组引用的$prod4未声明
  • 版本匹配逻辑错误:版本号为字符串类型,直接和数字15.9/16.0对比永远不成立

推荐实现方案

优先用路径批量遍历的写法,扩展性更高:

# 统一维护待检测的exe路径,新增文件直接修改该数组即可
$targetExePaths = @(
    "C:\Program Files\App1\app.exe",
    "D:\Tools\App2\app.exe",
    "C:\Program Files (x86)\App3\app.exe",
    "D:\Personal\App4\app.exe"
)

foreach ($exePath in $targetExePaths) {
    # 前置校验文件存在性,避免异常报错
    if (-not (Test-Path -Path $exePath -PathType Leaf)) {
        Write-Warning "路径不存在,跳过处理:$exePath"
        continue
    }
    # 获取产品版本号
    $currentVer = (Get-Item -Path $exePath).VersionInfo.ProductVersion
    Write-Host "当前处理文件:$exePath 版本号:$currentVer"

    # 版本匹配分支,支持通配符适配子版本
    switch -Wildcard ($currentVer) {
        "15.9*" {
            # 此处写入15.9版本对应的处理逻辑
            Write-Host "执行15.9版本专属操作"
        }
        "16.0*" {
            # 此处写入16.0版本对应的处理逻辑
            Write-Host "执行16.0版本专属操作"
        }
        default {
            # 无匹配版本的兜底逻辑,可根据需求调整
            Write-Host "未匹配到对应处理规则,跳过当前文件"
        }
    }
}

兼容原有函数写法的调整版

如果需要保留你原有的函数封装逻辑,修改后代码如下:

function Process-EXEByVersion {
    $prod1 = (Get-Item "路径1").VersionInfo.ProductVersion
    $prod2 = (Get-Item "路径2").VersionInfo.ProductVersion
    $prod3 = (Get-Item "路径3").VersionInfo.ProductVersion
    $prod4 = (Get-Item "路径4").VersionInfo.ProductVersion
    $verArray = @($prod1, $prod2, $prod3, $prod4)

    foreach ($ver in $verArray) {
        if ($ver -like "15.9*") {
            # 15.9版本处理逻辑
        }
        elseif ($ver -like "16.0*") {
            # 16.0版本处理逻辑
        }
    }
}

# 调用函数执行逻辑
Process-EXEByVersion

注意事项

  • 版本匹配优先用-like加通配符*,不需要完全匹配完整版本号,同大版本下的子版本都能命中规则
  • 建议保留文件存在性校验逻辑,避免路径配置错误导致脚本直接崩溃
  • 多版本分支较多时用switch语句比多层if/elseif可读性更高,新增版本规则也更方便

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:15:08