這是代碼;啓動第二個腳本的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