У меня есть bat-скрипт, который записывает в текстовый файл несколько строк.
set logfile=D:\my_job\out.txt
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo completed >>%logfile%
echo completeD >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
echo ***Completed*** >>%logfile%
echo wwe >>%logfile%
echo wwe >>%logfile%
И у меня есть скрипт, чтобы остановить выполнение моей работы, если я вижу ***Completed***
Get-Content D:\my_job\out.txt –Wait | ForEach-Object {$_ ; if($_ -eq "***Completed***"){break} }
Но это не останавливает мою работу.
Кроме того, я попробовал это:
Get-Content D:\my_job\out.txt –Wait | ForEach-Object {$_ ; if($_ -Match "***Completed***"){break} }
И в выводе я вижу:
parsing "***Completed***" - Quantifier {x,y} following nothing.
At C:\Users\jenkins\AppData\Local\Temp\jenkins4007901642048080451.ps1:1 char:138
+ ... t -Wait | ForEach-Object {$_ ; if($_ -Match "***Completed***"){break} ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException
Можете ли вы помочь мне, пожалуйста, как я могу решить эту проблему?