Add .gitignore, config_template.json, readme.md, and reload_xmos_device.ps1 files

This commit is contained in:
2024-02-21 10:39:58 +08:00
commit 9046c88cca
4 changed files with 88 additions and 0 deletions

49
reload_xmos_device.ps1 Normal file
View File

@@ -0,0 +1,49 @@
function RunAsAdmin($scriptPath) {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = New-Object Security.Principal.WindowsPrincipal($identity)
$admin = [Security.Principal.WindowsBuiltInRole]::Administrator
if (!$principal.IsInRole($admin)) {
$arguments = "& '" + $scriptPath + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
exit
}
}
function GenerateDeviceList($devManViewPath, $outputFile) {
& $devManViewPath /scomma $outputFile
Write-Host "Created $outputFile"
}
function FilterDevices($deviceListFile, $pattern) {
$deviceList = Import-Csv -Path $deviceListFile -Encoding UTF8 -Header "Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18", "Column19", "Column20", "Column21", "Column22", "Column23", "Column24", "Column25", "Column26", "Column27"
$deviceList | Select-Object -ExpandProperty Column1 | Where-Object { $_ -match $pattern } | Sort-Object | Get-Unique
}
function UninstallDevices($devManViewPath, $devices) {
foreach ($device in $devices) {
Write-Host "Uninstalling $device"
& $devManViewPath /uninstall "$device"
}
}
# 读取配置文件
$config = Get-Content -Path .\config.json | ConvertFrom-Json
# 配置选项当选项不起作用时检查DevManView.cfg中是否配置了filter
$scriptPath = $myinvocation.mycommand.definition
$devManViewPath = $config.devManViewPath
$deviceListFile = $config.deviceListFile
$pattern = $config.pattern
# 执行
RunAsAdmin $scriptPath
GenerateDeviceList $devManViewPath $deviceListFile
$devices = FilterDevices $deviceListFile $pattern
UninstallDevices $devManViewPath $devices
Remove-Item $deviceListFile
# 重启 Adobe Audition and Audacity
Stop-Process -Name "Audition" -Force -ErrorAction SilentlyContinue
Start-Process -FilePath $config.auditionPath
Stop-Process -Name "Audacity" -Force -ErrorAction SilentlyContinue
Start-Process -FilePath $config.audacityPath