$global:LDPlayerPath ="C:\Ldplayer\LDplayer9" $instanceIP = "10.0.211.121" function logger($logMessage) { [int]$number = (get-content -path "$global:LDPlayerPath\index_count.txt") if($number -gt 21){ $number=1} $instanceList = Get-Content -Path "$global:LDPlayerPath\instanceList.txt" $instanceNumber = $instanceList[$number-1] $instanceData = (cat C:\Ldplayer\LDplayer9\vms\config\leidian${instanceNumber}.config) $convertedData = $instanceData | ConvertFrom-Json $name = $convertedData."statusSettings.playerName" $count = $number $scriptName = Split-Path -Leaf $PSCommandPath $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff" $timestampedLogMessage = $timestamp + "-$name, ($count/22)-$scriptName-PID: ${PID}-:" + $logMessage $logFilePath = "$global:LDPlayerPath\LDAutoLog.txt" $fs = New-Object System.IO.FileStream($logFilePath, [System.IO.FileMode]::Append, [System.IO.FileAccess]::Write, [System.IO.FileShare]::Read) $sw = New-Object System.IO.StreamWriter($fs) try { $sw.WriteLine($timestampedLogMessage) } finally { $sw.Close() $fs.Close() } } [int]$cnt=0 while($true){ if($cnt%10 -eq 0) { logger("10 iterations passed starting ld instance again...");& $global:LDPlayerPath\closeLdplayer.ps1 ;& $global:LDPlayerPath\start_next_ldplayer.ps1} if($cnt -lt 2){logger("Waiting for adb device to appear")} $adbResponse = (adb connect $instanceIP) $adbResponse if($adbResponse -like "*connected to 10.0.211.121:5555*"){ logger("adb connected successfuly to 10.0.211.121 at iteration $cnt") $isOnline = adb devices 2> $null $pattern = [regex]::Escape($instanceIP) + ':\d+\s+device' if($isOnline -match $pattern){ break } else { return $true} } $instanceIP | Out-File -FilePath "C:\Ldplayer\Ldplayer9\restartADB.txt" $cnt+=1 start-sleep -milliseconds 1000 }