我得到了以下脚本来加载大约十万个 .doc 文件并在它们上运行一个程序。根据输出,文件被分组到文件夹中。我在一个文件很少的本地目录上测试了脚本,它按预期工作。
但是当从大量文件加载时,脚本会打印“Loading Files....”并停留在那里。脚本似乎正在等待它从语料库中加载所有文件。如果是这种情况,有没有办法一次加载和处理一个文件?
如果您也可以评论效率方面,那就太好了。
$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"