【问题标题】:In Powershell can i use the select-string -quiet switch within a foreach statement在 Powershell 中,我可以在 foreach 语句中使用 select-string -quiet 开关吗
【发布时间】:2013-09-20 13:14:26
【问题描述】:

我正在尝试编写一个脚本来检查一个字符串是否在一个文件中,如果它继续并检查下一个并继续直到所有都被检查,如果它找到一个不存在的,那么脚本将终止。我能否在 if 语句中使用带有布尔结果(-quiet 开关)的select-string 语句。 pinglist.txt 文件包含服务器列表,而另一个 _pinglist.ini 包含大量服务器列表。我是新手,请原谅我糟糕的脚本。谢谢

$Original_File = 'C:\Jobs\Powershell\Pinger\Other_PingList.ini'

$PingList= 'C:\Jobs\Powershell\pinglist.txt'

#

Foreach ($item in $pingList)

{If (Select-String $Original_File -pattern $item -quiet) {

Write-Host "Servers Present In File - Carrying on"

}}
Else {

   Write-Host "Servers Not Present In File - Terminating"

}

【问题讨论】:

    标签: powershell select-string


    【解决方案1】:

    试试看

    $Original_File = gc 'C:\Jobs\Powershell\Pinger\Other_PingList.ini'
    $PingList= gc 'C:\Jobs\Powershell\pinglist.txt'    
    
    Foreach ($item in $pingList)
    {
        If ($Original_File -match $item ) 
        {
            Write-Host "Servers $item Present In File - Carrying on"
        }
        Else
        {
            Write-Host "Servers $item Not Present In File - Terminating"
        }
    }
    

    【讨论】:

    • 您好,感谢您的回复,我尝试过并收到以下错误,运算符'-match'的错误参数:解析“C:\Jobs\Powershell\pinglist.txt”-无法识别转义序列\J.. 在第 11 行 char:30 + If ($Original_File -match
    • @Mach1 在变量声明中查看@gc(get-content cmdlet 的别名)...我想你错过了!复制并粘贴我所有的代码...
    • @Mach1 如果答案解决了您的问题,请确保将答案标记为“已接受”。
    【解决方案2】:

    我能否在 if 语句中使用带有布尔结果(-quiet 开关)的选择字符串语句

    是的。来自文档:

    -安静

    返回一个布尔值(true 或 false),而不是 MatchInfo 对象。如果找到模式,则值为“true”;否则,值为“假”。

    Source

    您当前的脚本有问题吗?是什么促使这个问题开始的?

    【讨论】:

    • 嗨,是的,它抛出了一个错误。解析“C:\Jobs\Powershell\pinglist.txt” - 无法识别的转义序列 \J。在 line:9 char:19 + {If (Select-String
    • @Mach1 可能是您的Foreach 块不包括您的Else。您应该将Write-Host 之后的行上的额外括号移动到Else 的远端。这样,IfElse 都包含在 Foreach
    • @Mach1 和@C.B.也有好的建议,你需要使用$Original_File = Get-Content "...."
    • 感谢您的提示,非常感谢
    猜你喜欢
    • 2010-11-05
    • 2016-04-03
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多