在搜索日志文件时遇到一些麻烦。我有一个基本脚本,用于在日志文件中搜索特定文本。问题是,我试图使用可以由用户在命令行调整的变量,但我无法让它们被识别。该脚本应该将结果输出回屏幕。命令行的使用变量在文件中搜索字符串
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'的行。但我想这是与这个问题无关的另一个问题。 –