|
9#
楼主 |
发表于 2022-12-13 16:58:50
|
只看该作者
<# :
@powershell "icm ([scriptblock]::Create((gc '%~f0' -Raw -Encoding UTF8)))"
exit
#>
chcp 65001
#保存为.cmd
$程序名="Browser"
#ok是根据id下载
#目前缺陷,不能搜索,只能在这里修改软件名,appx只能下载安装一次
#就消失了
#不会表格gui
#rite-Host "winget search " -ForegroundColor Green
$pro_arry = @()
#$processes = Get-Process | Select Name, Id
$实时数据=winget search $程序名
# $实时数据| Out-GridView
$商店来源 = $实时数据 | Select-String -Pattern "msstore" #msstore来源
$winget来源 = $实时数据 | Select-String -Pattern "winget" #winget来源
#过滤name
$正则 = $商店来源 + $winget来源
$正则 = $正则 -replace ("\s+","}") #正则替换
$正则 = $正则 -replace ("[^}]*\..*.$","") #正则替换
$正则 = $正则 -replace ("}"," ") #正则替换
$过滤name=$正则
#过滤id
$正则 = $商店来源 -replace ("\s+","}") #正则替换
$正则 = $正则 -replace ("\}Unknown.*.$","") #正则替换
$正则 = $正则 -replace ("^.*.}","") #正则替换
$过滤商店来源=$正则
#过滤id
$正则 = $winget来源 -replace ("\s+","}") #正则替换
$正则 = $正则 -replace ("^[^\.]*\}","") #正则替换
$正则 = $正则 -replace ("}.*.$","") #正则替换
$过滤id=$过滤商店来源+$正则
#过滤版本号
$正则 = $winget来源 -replace ("\s+","}") #正则替换
$正则 = $正则 -replace ("}winge.*.$","") #正则替换
$正则 = $正则 -replace ("}Tag.*.$","") #正则替换
$正则 = $正则 -replace ("}Comman.*.$","") #正则替换
$正则 = $正则 -replace ("^.*.\}","") #正则替换
Measure-Command {
$版本1 = New-Object -TypeName System.Collections.ArrayList
$来源1 = New-Object -TypeName System.Collections.ArrayList
for ($x=0; $x -lt $商店来源.Length ; $x++)
{
$版本1.Add("Unknown")
$来源1.Add("msstore")
}
}
$过滤版本号=$版本1+$正则
Measure-Command {
$版本2 = New-Object -TypeName System.Collections.ArrayList
$来源2 = New-Object -TypeName System.Collections.ArrayList
for ($x=0; $x -lt $winget来源.Length ; $x++)
{
$版本2.Add($正则[$x])
$来源2.Add("winget")
}
}
$来源=$来源1+$来源2
$版本=$版本1+$版本2
$显示数据= @()
for ($i = 1; $i -le $实时数据.Length-3; $i++) {
$显示数据+= New-Object PSObject -Property @{
名字 = $过滤name[$i]
Id = $过滤id[$i]
版本号=$版本[$i]
来源=$来源[$i]
}
}
$op = $显示数据 | Out-GridView -Title "过滤" -OutputMode Multiple
Write-Host "根据id下载" $op.Name -BackgroundColor Cyan -ForegroundColor Black
winget install $op.id
pause
|
|