我在这个逻辑上苦苦挣扎,我希望有人可以指出并解释我出错的地方 - 我已经尝试了各种各样的变化但是避风港& #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。它似乎没有评估为假,因此不会从那里继续前进。
提前感谢您,非常感谢任何帮助/见解。