61 lines
1.6 KiB
PowerShell
61 lines
1.6 KiB
PowerShell
|
|
$dir=$PSScriptRoot
|
|
$MyCommand="$dir"+"\stlink\st-info.exe --probe --hot-plug"
|
|
Invoke-Expression -Command $MyCommand | Out-String -OutVariable output
|
|
$DevicesNum=$output.Substring($output.IndexOf("Found") + 7, 1)
|
|
Write-Host -ForegroundColor Yellow -BackgroundColor Blue 'Do you wanna run the script N/Y'
|
|
$key=Read-Host
|
|
if ($key.ToUpper() -notmatch 'Y')
|
|
{
|
|
exit
|
|
}
|
|
if ($DevicesNum -eq 1)
|
|
{
|
|
$serial=$output.Substring($output.Trim().IndexOf("serial") + 12, 24)
|
|
}
|
|
elseif ($DevicesNum -eq 0)
|
|
{
|
|
exit
|
|
}
|
|
else
|
|
{
|
|
Write-Host -ForegroundColor Yellow -BackgroundColor Blue 'Press key which number of debugger you wanna use'
|
|
$key=Read-Host
|
|
$res=$output.Split('.')[$key]
|
|
$res=$res.Substring(0, $res.Length-2)
|
|
$serial=$res.Substring($res.IndexOf("serial") + 12 , 24)
|
|
Write-Host -ForegroundColor Yellow -BackgroundColor Blue "Your select is : `r`n $res"
|
|
}
|
|
|
|
|
|
|
|
$serial=$serial.ToCharArray()
|
|
|
|
$StringForCompare='adapter serial "'
|
|
|
|
for ($i = 0; $i -lt $serial.Count; $i=$i+2) {
|
|
$StringForCompare=$StringForCompare.Insert($StringForCompare.Length,"$($serial.Get($i))$($serial.Get($i+1))")
|
|
}
|
|
$StringForCompare=$StringForCompare.Insert($StringForCompare.Length,'"')
|
|
$Path = "$dir"+"/board.cfg"
|
|
$Lines = [System.IO.File]::ReadAllLines($Path)
|
|
|
|
foreach ($line in $lines)
|
|
{
|
|
if ($line -match "adapter serial")
|
|
{
|
|
if ($line -notmatch $StringForCompare)
|
|
{
|
|
$Lines[$Lines.IndexOf($line)]=$StringForCompare
|
|
}
|
|
[System.IO.File]::WriteAllLines($Path, $Lines)
|
|
exit
|
|
}
|
|
}
|
|
|
|
$Lines[0]=$StringForCompare
|
|
[System.IO.File]::WriteAllLines($Path, $Lines)
|
|
|
|
|
|
|