在PowerShell中,我正在阅读文本文件。 我正在对文本文件执行Foreach-Object,并且只对不包含$arrayOfStringsNotInterestedIn字符串的行感兴趣。

这是什么语法?

   Get-Content $filename | Foreach-Object {$_}

===============>>#1 票数:42 已采纳

如果$ arrayofStringsNotInterestedIn是[数组],你应该使用-notcontains:

Get-Content $FileName | foreach-object { `
   if ($arrayofStringsNotInterestedIn -notcontains $_) { $) }

或更好(IMO)

Get-Content $FileName | where { $arrayofStringsNotInterestedIn -notcontains $_}

===============>>#2 票数:10

您可以使用-notmatch运算符来获取没有您感兴趣的字符的行。

     Get-Content $FileName | foreach-object { 
     if ($_ -notmatch $arrayofStringsNotInterestedIn) { $) }

===============>>#3 票数:1

要排除包含$ arrayOfStringsNotInterestedIn中任何字符串的行,您应该使用:

(Get-Content $FileName) -notmatch [String]::Join('|',$arrayofStringsNotInterestedIn)

如果$ arrayofStringsNotInterestedIn包含要排除的整行,则Chris提出的代码才有效。

  ask by Guy translate from so

未解决问题?本站智能推荐:

1回复

PowerShell:在cmdlet之后用变量连接字符串

我是PowerShell的新手。 我在网上看了这个答案,但无济于事。 也许我只是错误地表达了这个问题。 我经常发现自己处于一种情况,我必须在cmdlet之后将字符串与变量连接起来。 例如, 如果我尝试运行它,PowerShell会抛出以下错误: New-Item:找不到
3回复

如何在Powershell中的字符串中插入cmdlet

说我想用字符串告诉时间,就像这样 相对于: 如何在不将其资源化为变量的情况下获得相同的结果?
1回复

PowerShell-如果文件中不包含字符串,则继续(检测cmdlet何时不返回任何内容)

我正在寻找一个字符串( $Loan_Id在一个文件中() $File_LoanData )。 我能够找到它,但是如果找不到该字符串,则需要脚本才能继续。 这似乎不起作用。 这是问题所在的行if ($Note_Line -eq $false) {Continue}
1回复

Azure PowerShell cmdlet转换为字符串

只是一个简单的问题。 我正在运行类似的代码行, 它确实为我提供了IPAddress或变量,但是当尝试将值放入csv单元时,它将失败。 我认为这是因为它试图添加额外的标签,但是我不知道如何仅获取字符串并将变量设置为该值。 有人知道如何补救吗? 编辑: 如果输出带有:
4回复

Powershell-检查文件是否存在并包含字符串模式

编写了这小部分代码来检查文件是否存在并包含字符串模式 但是,它没有做应做的事情。 首先,它部分识别路径存在,其次部分识别txt文件中的模式。 你能帮我么? 我怀疑在乘法服务器上(部分白点等)PATTER可以部分识别,但是如何跳过呢? 奇怪的是,它没有看到文件中缺少该模式,
3回复

在Powershell cmdlet中提取字符串时不留空格

我有一些powershell脚本。 而是可以键入totalcmd *,然后键入所需的另一个进程。 我认为这不起作用,因为我的$ tc不等于字符串“ totalcmd”。 如何删除cmdlet的多余空间get-process -Name totalcmd* | format-wide
3回复

在PowerShell中选择字符串cmdlet。 解析括号

我将其存储在如下所示的文本文件中: 我正在使用PowerShell对这些信息进行处理,但是在第一步遇到了困难。 我正在使用Select-String来匹配模式,但无法正常工作。 似乎不起作用,但以下内容将两者都恢复了。 有谁知道为什么带括号的那个不起作用? 是解析问题
3回复

对于PowerShell cmdlet,是否可以始终将脚本块传递给字符串参数?

我正在查看Rename-Item的文档,并且有一个这样的示例。 此示例显示即使NewName参数不接受通配符,如何使用Replace运算符重命名多个文件。 此命令将当前目录中的所有.txt文件重命名为.log。 该命令使用Get-ChildItem cmdlet获取当
5回复

检查字符串是否包含PowerShell中的数值?

我想检查一个字符串是否包含数值。 我有这个代码: 我有$ substring,它将包含“123456”,我在这里找到了这个IsNumeric函数: 在PowerShell中,如何测试变量是否包含数值? 问题是,当我从$ string中提取它时,它就像字符串类型一样,并且IsNum
2回复

如何使用“匹配”cmdlet在PowerShell中过滤字符串数组(或列表)?

我正在尝试过滤CSV文件。 但是以下脚本发出错误。 如何指定我想在每个String对象上运行匹配? 我尝试了各种组合,但没有结果。