Dec*_*ech 17 powershell locking file
我有一个自动化部署的问题,在我停止服务后仍然锁定文件,我无法删除它.我真的不想开始用睡眠来制作"通常有效"的东西.有没有一种方法可以正确解决锁定文件的问题,也许是某种"等到文件可以删除":
Get-ChildItem:拒绝访问路径'D:\ MyDirectory \'.
在这种情况下,'Test-Path'是不够的,因为文件夹都存在并且我可以访问它.
Dec*_*ech 28
感谢David Brabant在最初的问题下发布了这个解决方案的链接.看来我可以通过以下功能开始这样做:
function Test-FileLock {
param (
[parameter(Mandatory=$true)][string]$Path
)
$oFile = New-Object System.IO.FileInfo $Path
if ((Test-Path -Path $Path) -eq $false) {
return $false
}
try {
$oStream = $oFile.Open([System.IO.FileMode]::Open, [System.IO.FileAccess]::ReadWrite, [System.IO.FileShare]::None)
if ($oStream) {
$oStream.Close()
}
return $false
} catch {
# file is locked by a process.
return $true
}
}
Run Code Online (Sandbox Code Playgroud)
然后添加一个'wait until'函数并超时.
谢谢你的帮助!
mjo*_*nor 18
我用这个:
try { [IO.File]::OpenWrite($file).close();$true }
catch {$false}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46529 次 |
| 最近记录: |