Windows PowerShell:循环后的RemoveFileSystemItemIOError

我是一个在Windows PowerShell中编码的新手。 所以我有下面的代码find最大值。 子目录中的jpg文件的宽度和高度。 当我find最大值后,我cd到父目录,需要删除(temp)子目录。

但我不能这样做,我得到RemoveFileSystemItemIOError ,并且我被告知subdir中的所有jpg文件当前都被不同的进程使用。 我如何解决/释放他们?

代码可以在下面find:

cd n; $maxh=1;$maxw=1; $(Get-ChildItem -Filter *.jpg).FullName | ForEach-Object { $img = [Drawing.Image]::FromFile($_); if ($img.Width -ge $maxw) { $maxw=$img.Width} if ($img.Height -ge $maxh) { $maxh=$img.Height} } cd ..; rm n -r; 

您正在使用打开图像文件

 $img = [Drawing.Image]::FromFile($_); 

当你完成它,你应该运行$img.dispose()否则Powershell将继续存储对图像的引用,并防止您将其删除。