在我目前的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")) { }
}
}
}
答案 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
}
}
}