PowerShell正在释放上次标准测试创建的文件锁

PowerShell正在释放上次标准测试创建的文件锁,powershell,Powershell,我需要根据大小、宽度和修改日期选择图像,并移动它们,以及重命名它们。以下是我目前的脚本: Add-Type -Assembly System.Drawing Get-ChildItem -path C:\temp\images | Where-Object { $_.Length -ge 250Kb -and $_.lastwritetime -gt (get-date).addDays(-5) -and [Drawing.Image]::FromFile($_.FullName).Widt

我需要根据大小、宽度和修改日期选择图像,并移动它们,以及重命名它们。以下是我目前的脚本:

Add-Type -Assembly System.Drawing
Get-ChildItem -path C:\temp\images |
  Where-Object { $_.Length -ge 250Kb -and $_.lastwritetime -gt (get-date).addDays(-5) -and [Drawing.Image]::FromFile($_.FullName).Width -eq 1920 } | 
  move-item –PassThru | Rename-Item -NewName {-join @($_.Name,'.jpg')}
问题是FromFile方法正在锁定文件并阻止移动,并显示以下错误消息:

移动项目:进程无法访问该文件,因为它正在被删除 被另一个进程使用


您需要使用该文件查找其他进程,例如:

$lockedFile = "path/to/locked/file"
$lockingProcessID = Get-Process | foreach {$processVar = $_;$_.Modules `
    | foreach {if($_.FileName -eq $lockedFile) {$processVar.id}}}
然后终止进程:

Stop-Process -ID $lockingProcessID -Force

然后再次尝试移动文件。

[1]请更改标题以反映您的实际问题。你的问题不是多重标准。。。它正在释放上次标准测试创建的文件锁。//[2] 管道后面不需要反勾号。[咧嘴笑]好建议李戴利-好了!非常感谢。[grin]感谢您的回复-我尝试了您从管道结果中提出的建议,但我得到了以下错误:停止进程:无法计算参数“Id”,因为它的参数被指定为脚本块,并且没有输入。如果没有输入,则无法计算脚本块