約10万の.docファイルを読み込むための次のスクリプトを入手し、プログラムを実行しました。出力に基づいて、ファイルはフォルダにグループ化されます。私は、ファイルがほとんどないローカルディレクトリでスクリプトをテストし、期待どおりに動作します。PowerShellを使用して、一度に1つずつファイルをロードして処理する方法
しかし、ファイルの大きなコーパスから読み込むと、スクリプトは "Loading Files ...."と表示されたままになります。コーパスからすべてのファイルがロードされるまで、スクリプトが待機しているようです。この場合、一度に1つのファイルを読み込んで処理する方法がありますか?
効率面でもコメントできれば素晴らしいと思います。
$path = "\\Storage\100kCorpus"
$filter = "*.doc"
$count = 0
Write-Host "Loading files....";
$files = @(get-childitem -recurse -path $path -filter $filter)
Write-Host "files loaded";
foreach ($file in $files) {
$count ++
Write-Host "$file.FullName";
$out = & "D:\Test\doc\Verify.exe" /i:$file.FullName
$failed_file_location="D:\Test\doc\2875555\$out";
if (($out -ne "passed") -and !(Test-Path -path $failed_file_location)){
[IO.Directory]::CreateDirectory($failed_file_location)
Copy-Item $file $failed_file_location
}
}
Write-Host "There are $count files with the pattern $filer in folder $path"