在搜索日誌文件時遇到一些麻煩。我有一個基本腳本,用於在日誌文件中搜索特定文本。問題是,我試圖使用可以由用戶在命令行調整的變量,但我無法讓它們被識別。該腳本應該將結果輸出回屏幕。命令行的使用變量在文件中搜索字符串
param (
[string]$file ,
[string]$Ip ,
[string]$port
)
Get-Content -Path C:\$file | Where-Object {$_ -like $Ip -and $_ -like $port}
實施例來執行的腳本:
PS C:\> .\LogSearch.ps1 logfile04.txt 192.168.1.7 21
在這種情況下,logfile04.txt
是文件,端口是21
和IP地址爲192.168.1.7
此時運行腳本,我沒有任何返回,但文件中有這條線。
4|Oct 19 2015|18:28:39|106023|75.76.77.80|50077|192.168.1.7|21|Deny tcp src
'-like'使用正則表達式。如果你輸入'*'包圍的IP和端口,它是否工作? –
@MacroPower'-like'不使用'-match'的正則表達式。 [''''使用通配符](https://msdn.microsoft.com/powershell/reference/5.1/Microsoft.PowerShell.Core/about/about_Wildcards),其中'*'確實是一個。 – BenH
在命令行中使用'*'確實有效!現在我用'192.168.1.7'取代所有的行,而不是隻有那些端口爲'21'的行。但我想這是與這個問題無關的另一個問題。 –