Powershell 文件系统对象:MoveFolder随机给出;“拒绝许可”;错误
我在Powershell中使用文件系统对象来执行一些文件夹循环:假设有oldFolder、currentFolder和newFolder,这是一个过程:Powershell 文件系统对象:MoveFolder随机给出;“拒绝许可”;错误,powershell,filesystemobject,Powershell,Filesystemobject,我在Powershell中使用文件系统对象来执行一些文件夹循环:假设有oldFolder、currentFolder和newFolder,这是一个过程: 删除文件夹旧文件夹 将文件夹currentFolder移动到oldFolder 将文件夹newFolder移动到currentFolder 在脚本中运行时,步骤2或3随机抛出CTL_E_PERMISSIONDENIED。 当脚本停止时,我重复最后一个命令,它将正确完成 似乎MoveFolder方法是半异步的 这些文件夹有子文件夹和很多文件 我试
$oldFolder = "D:\test\folder_OLD"
$curFolder = "D:\test\folder"
$newFolder = "D:\test\folder_NEW"
$fso = $fso = New-Object -ComObject scripting.filesystemobject
if (Test-Path $oldFolder) {$fso.DeleteFolder($oldFolder)}
if (Test-Path $curFolder) {$fso.MoveFolder($curFolder,$oldFolder)}
$fso.MoveFolder($newFolder,$curFolder)
谢谢你的迅速回复。这证实了我的怀疑
我将尝试使用另一种方法,可能是Lee提出的纯powershell。您是否尝试过使用纯powershell而不是将wscript与PoSh混合使用?[咧嘴笑]令人惊讶和不幸的是,这会导致间歇性、不可预测的故障。我怀疑这就是这里发生的事情;有关强大的自定义文件夹删除功能,请参见@Lee_Dailey:问题最终在于Windows API,PowerShell的
Remove Item-Recurse
也受到同样的影响,就像cmd.exe的rd/s
@Lee_Dailey一样,是的,它只是间歇性地发生是问题的一部分;显然,有人在谈论尽快使Windows API同步: