ここで頭がおかしくなる。TIFS でいっぱいのフォルダーを解析し、ファイルをサブフォルダーに分割してフォルダーあたりのページ数を約 60 に制限するスクリプトがあります。ドキュメントが非常に大きい場合は、独自のフォルダーが作成されます。
問題は、プロセスがファイルをロックしているため、削除できないことです。ただし、すべてのファイルではありませんが、ほとんどのファイルは正常に機能し、スクリプトの最後のクリーンアップ部分で他のすべてが削除されます。
この問題を修正するためにコードに多くの回避策セクションを書きましたが、今ではかなり見栄えが悪いです
#Large Documents
Get-ChildItem -Path "$directory" -recurse -filter "*.tif" | foreach {
$file = [System.Drawing.Bitmap]::FromFile($_.Fullname);
$pagecount = $file.GetFrameCount($file.FrameDimensionsList[0]);
if ($pagecount -gt $MaxSize){
$total = $total + $pagecount;
$name = $_.Basename;
New-Item $name -ItemType directory;
Copy-Item $_.fullname -Destination $name;
#Copy-Item $name".DS" -Destination $processingDir;
Write-Host "Sleeping in large doc loop";
$file.Dispose;
Write-Host "Dispose file object";
Write-Host $_.Fullname
$storename = $_.Fullname
$largeFiles = $largeFiles + $storename
Write-Host "Storing to array: " $largeFiles[$index];
$index = $index + 1;
sleep(15);
}
}
while ($delInd -lt $largeFiles.Count){
Write-Host "Deleting: " $largeFiles[$delInd];
Remove-Item $largeFiles[$delInd] -Force;
$delInd = $delInd + 1;
}
私はこれに完全に困惑しています。どんな助けでも大歓迎です。