0

私のスクリプトは現在の配列値で正しく動作しています。ただし、実際のファイル名には、無視したいプレフィックスに約 5 文字が含まれます。解析したいファイル名の唯一の部分は、プレフィックス 03_R___ を無視して「108701####」です

$source ="\\127.0.0.1\baunhof\*"
$File_Array_8HP70=@("108701") 
$File_Array_8HP70X=@("108702")
$File_Array_9HP48=@("109401", "1094080", "1094090")
$File_Array_9HP48X=@("109402", "1094091", "1094082", "1094092")

$File_Array_8HP70_start = $File_Array_8HP70 | % {$_+"*"}
$File_Array_8HP70X_start = $File_Array_8HP70X | % {$_+"*"}
$File_Array_9HP48_start = $File_Array_9HP48 | % {$_+"*"}
$File_Array_9HP48X_start = $File_Array_9HP48X | % {$_+"*"}

$files = get-childitem $source -include $File_Array_8HP70_start -recurse 
$files1 = get-childitem $source -include $File_Array_8HP70X_start -recurse
$files2 = get-childitem $source -include $File_Array_9HP48_start -recurse          
4

1 に答える 1

2

手動でフィルタリングすることにより、最初の N 文字を無視できます。

get-childitem $source -recurse | where { $_.Name -like "???????108701*" }

この方法でパターンの配列を列挙したい場合は、次の方法で実行できます。

get-childitem $source -recurse | foreach {
  foreach($pattern in $likes) {
    if($_.Name -like $pattern) {
      $_
      break;
    }
  }
}
于 2012-11-15T20:05:46.880 に答える