这是代码;启动第二个脚本的powershell脚本
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
文件,当满足条件的模式,这将发送电子邮件。
任何帮助,将不胜感激
这是代码;启动第二个脚本的powershell脚本
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
文件,当满足条件的模式,这将发送电子邮件。
任何帮助,将不胜感激
假设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 -Command
使用从非PowerShell命令行,你可以消除换行符:
$x = ((Get-Content .\test.log) -join '').Trim(); if ($x -gt 2) { .\my_script.ps1 $x }
谢谢,非常感谢 – user177073 2015-02-06 19:07:55
这可能是一个小更安全。这会将结果数字存储在$ 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
}
非常好谢谢 – user177073 2015-02-06 20:15:12
“*我所需要的只是打开/启动output.txt文件*” - 我不清楚这意味着什么。是一个批处理文件output.txt?一个PowerShell文件?你想在某处发送email到output.txt吗?在记事本中打开它? – NextInLine 2015-02-05 19:33:48
'output.txt'只是一个占位符,我有第二个powershell脚本,这将启动 – user177073 2015-02-05 19:47:01
因此,如果我理解正确,您是否尝试通过* test.log *逐行进行并通过电子邮件向某人发送条件会见?如果是这样,那么* test.log中一行的示例是什么?以及您想要匹配哪种模式? '-pattern -lt“2”'对我来说不是很清楚。 – NextInLine 2015-02-06 00:13:43