在powershell脚本中使用“starts with”而不是包含?

时间:2013-02-21 14:23:16

标签: powershell hashtable

在我目前的PowerShell脚本中,我有一个带有值的哈希表。我正在使用 这个语法

$x = $f.contains("$k")

但是我最近发现我遇到了这种方法的问题我想知道powershell是否有一些“开头”或相关的东西,它会通过哈希表搜索“以...开头”而不是contains

哈希表的示例:

"bio.txt" = "server1\datafiles\bio";
etc.......

编辑评论中的示例

foreach ($key in $filehash.keys) { 
    $path = $filehash.get_Item($key)
    $filecount = 0
    foreach ($file in $FileArray) { 
        if ($file.LastWriteTime -lt($(GetDate).adddays(-1))) { 
            [string] $k = $key.ToLower()
            [string] $f = $file.name.ToLower() 
            if ($x = $f.contains("$k")) { } 
        }
    }
}

1 个答案:

答案 0 :(得分:2)

尝试使用-like检查字符串是否以yourvalue开头。我在评论中重写了你的样本以使用它:

$filehash.GetEnumerator() | foreach {
    #$_ is now current object from hashtable(like foreach)
    #$_.key is key and $_.value is path
    $filecount = 0
    foreach ($file in $FileArray) {
        if ( ($file.LastWriteTime -lt $((Get-Date).AddDays(-1))) -and ($file.name -like "$($_.Key)*") ) {
            #process file

        }
    }
}