Powershell正在从.txt文件中的错误代码列表分析.log文件

Powershell正在从.txt文件中的错误代码列表分析.log文件,powershell,Powershell,我有一个脚本,可以从计算机中提取.log文件列表并将其保存到共享。我正在尝试编写一个powershell脚本,该脚本将解析错误代码的.txt文件,然后在日志文件中查找它们。这就是我到目前为止所做的: Param( [Parameter (Mandatory=$true,HelpMessage="Enter full original file name (ex: HYPERLINK "C:\MyFiles\MyFile.log)"\\*\blahblah.log)")][string]$Fi

我有一个脚本,可以从计算机中提取.log文件列表并将其保存到共享。我正在尝试编写一个powershell脚本,该脚本将解析错误代码的.txt文件,然后在日志文件中查找它们。这就是我到目前为止所做的:

Param(
  [Parameter (Mandatory=$true,HelpMessage="Enter full original file name (ex: HYPERLINK "C:\MyFiles\MyFile.log)"\\*\blahblah.log)")][string]$FilePath
  $a = Get-Content "Problem_codes.txt"
  foreach ($i in $a)
  {$i}
  )
(Select-String -Pattern $a -Path $FilePath).Count
如果我确实选择了String-Pattern 0x00080b-Path$FilePath.Count,那么当我尝试从文件中读取时,它似乎起作用了:

Select-String : Cannot bind argument to parameter 'Pattern' because it is null.
At line:1 char:25
+ (Select-String -Pattern $a -Path $FilePath).Count
+                         ~~
    + CategoryInfo          : InvalidData: (:) [Select-String], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.SelectStringCommand 

您应该使用ISE或PowerGui编写代码语法着色、匹配括号等。在这里,我尝试将您的代码更改为正确的PowerShell,但我没有尝试

Param([Parameter (Mandatory=$true,HelpMessage="Enter full original file name (ex: HYPERLINK `"C:\MyFiles\MyFile.log)`"\\*\blahblah.log)")][string]$FilePath)

$a = Get-Content "Problem_codes.txt"
foreach ($i in $a)
{
  $i
 (Select-String -Pattern $i -Path $FilePath).Count
}

这不应该是Select字符串模式$i吗?是的,你是对的!非常感谢。使用ISE时更清晰。在我按照另一个建议将-Pattern$a更改为-Pattern$I之后,这也起到了作用。