1

在我当前的 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")) { } 
        }
    }
}
4

1 回答 1

3

尝试使用-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

        }
    }
}
于 2013-02-21T14:54:37.260 回答