我有蝙蝠脚本,它在txt文件中写了几行。
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
能帮我吗,我该如何解决这个问题?
答案 0 :(得分:1)
此命令将在行的末尾添加一个空格:
echo ***Completed*** >>%logfile%
所以您的支票$_ -eq "***Completed***"
将失败。
要么删除echo
中的空格,要么在比较字符串中添加空格。
关于-match
的错误:它使用正则表达式操作,由于使用***Completed***
,*
是不正确的正则表达式。