gpt4 book ai didi

powershell - 结合两个PowerShell do..while语句

转载 作者:行者123 更新时间:2023-12-02 23:20:28 25 4
gpt4 key购买 nike

我有两个单独运行的PowerShell do..while语句。但是,我想将它们结合起来并使用两者的逻辑。

下面的代码分为3部分。第一个充满了涵盖这两个语句的变量声明。第二个是第一个Do-While语句,该语句使脚本在IE网页完全加载之前不会与其他进程一起前进。第三部分具有第二条Do-While语句,该语句严格返回“正在加载”语句,直到进程加载完毕,然后返回“已加载”语句。

我想正确地组合这些内容,以便脚本位于循环中,直到页面加载完毕后返回“loading”语句,然后声明“loaded”并继续运行。

$elementID = "loginHeader"
$elementMatchText = "Pick an account"
$timeoutMilliseconds = 5000
$timeStart = Get-Date
$exitFlag = $false
$started = $false
$ie = (New-Object -Com SXcript.Shell).Run("http://www.msn.com", 3)

do {
sleep -Milliseconds 100
if ( $ie.ReadyState -eq 4 ) {
$elementText = (($ie.Document).GetElementByID($elementID )).InnerText
$elementMatch = $elementText -match $elementMatchText
}
$timeout = ((Get-Date).Subtract($timeStart)).TotalMilliseconds -gt $timeoutMilliseconds
$exitFlag = $elementMatch -or $timeout
} until ( $exitFlag )
Start-Sleep -m 500
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")

do {
$status = Get-Process iexplore
if (!($status)) {
Write-Host 'Internet Explorer is starting';
Start-Sleep -m 100
} else {
Write-Host 'Internet Explorer has started';
$started = $true
}
} until ($started)

最佳答案

您可以使用if条件嵌套它们,仅在满足第一个循环的条件后才运行第二个循环。

Do {
sleep -milliseconds 100
If ( $ie.ReadyState -eq 4 ) {
$elementText = (($ie.Document).getElementByID($elementID )).innerText
$elementMatch = $elementText -match $elementMatchText
}

$timeout = ((Get-Date).subtract($timeStart)).TotalMilliseconds -gt $timeoutMilliseconds
$exitFlag = $elementMatch -or $timeout

if($exitFlag){
Start-Sleep -m 500
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
Do {
$status = Get-Process iexplore
If (!($status)) { Write-Host 'Internet Explorer is starting' ; Start-Sleep -m 100}
Else { Write-Host 'Internet Explorer has started' ; $started = $true }
}
Until ($started)
}
} Until ($exitFlag)

关于powershell - 结合两个PowerShell do..while语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52084019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com