这是代码;
Get-Content -path c:\batchjobs\location\test.log -pattern -lt "2" > sleep -seconds (60) elseif -pattern -gt "2" | C:\batchjobs\location\output.txt
我需要做的就是打开/启动output.txt
文件,这将在满足模式条件时发送电子邮件。
非常感谢任何帮助
答案 0 :(得分:0)
假设 test.log 的全部内容是一个单独的数字,用填充空格和空行,那么你可以做
if (((Get-Content .\test.log) -join '').Trim() -gt 2) { .\my_script.ps1 }
如果您需要用于解析脚本的实际数字,那么您需要更像
的内容$x = ((Get-Content .\test.log) -join '').Trim();
if ($x -gt 2)
{
.\my_script.ps1 $x
}
如果您需要在一行中,例如从非PowerShell命令行使用powershell -Command
,则可以删除换行符:
$x = ((Get-Content .\test.log) -join '').Trim(); if ($x -gt 2) { .\my_script.ps1 $x }
答案 1 :(得分:0)
这可能会更安全一些。这会将结果数存储在$ x中。由于某种原因,文件的内容包含无法解析为整数的字符,$ x将包含0,$ parsedOk将为$ false。
$x=$null
$parsedOk = [int64]::TryParse($(gc .\test.log),[ref]$x)
if($parsedOk -and $x -gt 2){
.\my_script.ps1 $x
}