1

私の現在のpowershellスクリプトには、値を持つハッシュテーブルがあります。この構文を使用しています

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

しかし、私は最近、このアプローチに問題があると考えました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 に答える