如何合并两个PowerShell应用查询脚本并完善批处理输出行?
合并PowerShell脚本并修改批处理输出行
可以直接修改批处理输出行的拼接逻辑,让它包含PackageFamilyName字段,而且实际上UWP应用通过shell:appsFolder启动的标准格式就是shell:appsFolder\PackageFamilyName!ApplicationId,这样修改后还能保证启动命令的有效性。
修改后的完整脚本如下:
# 获取应用包并选择所需属性 $packages = Get-AppxPackage | Select Name, InstallLocation, PackageFamilyName, Target # 遍历每个应用包 foreach ($package in $packages) { $appName = $package.Name $appId = (Get-AppxPackage -Name $appName | Get-AppxPackageManifest).package.applications.application.id $batchPrefix = "start explorer.exe shell:appsFolder\" # 为对象添加ApplicationId属性 $package | Add-Member -MemberType NoteProperty -Name "ApplicationId" -Value $appId # 格式化批处理输出行,包含PackageFamilyName $package | Add-Member -MemberType NoteProperty -Name "Batchfile Line" -Value "$batchPrefix$($package.PackageFamilyName)!$appId" } # 输出合并后的结果 $packages
修改说明
主要调整了批处理行的拼接部分:
- 把原来直接拼接
$appName的逻辑,改成调用$package.PackageFamilyName - 用PowerShell的字符串插值语法
$()确保属性正确解析,避免拼接错误
这样生成的Batchfile Line字段就会包含PackageFamilyName,同时生成的启动命令也是符合UWP应用启动规范的有效命令。
内容的提问来源于stack exchange,提问作者cerberus1845
相关产品推荐
相关产品推荐

