在继续或重复命令之前检查日志文件的最后一行

时间:2017-08-11 13:07:07

标签: powershell

我在这个逻辑上苦苦挣扎,我希望有人可以指出并解释我出错的地方 - 我已经尝试了各种各样的变化但是避风港& #39; t得到了它。

我想要的是运行uninstall.bat脚本并监视退出代码的日志文件。然后,如果退出代码为0,则继续使用脚本,如果退出代码不是0,则重复uninstall.bat最多4次。

当我尝试在字符串的任意一侧加上通配符时*它不起作用 - 我不认为它是问题的字符串,我认为它是#&# 39;我采取的方法/方法。

另一个轻微的复杂问题是日志文件将始终具有' CcmSetup正在退出并返回代码'最初作为最后一行的一部分,这随着bat文件的运行而改变,但是当完成时将以' CcmSetup退出并返回代码0'在日志文件中。

do{
    $count = 1
    Write-Output "Uninstalling Software Center - attempt $count"
    Start Uninstall-Local.bat
    $count++
    While((Get-Content C:\Windows\ccmsetup\Logs\ccmsetup.log -tail 1 -Wait | Select-String -pattern "CcmSetup is exiting with return code" -SimpleMatch -Quiet)){Start-sleep -s 10}
    } until((Get-Content C:\Windows\ccmsetup\Logs\ccmsetup.log -tail 1 -Wait | Select-String -pattern "CcmSetup is exiting with return code 0" -SimpleMatch -Quiet) -or $count -gt 3) 

在while()上我尝试了-notmatch和-not seperately。它似乎没有评估为假,因此不会从那里继续前进。

提前感谢您,非常感谢任何帮助/见解。

0 个答案:

没有答案