文件系统对象:MoveFolder给出随机的“权限被拒绝”错误

时间:2019-04-02 17:07:59

标签: powershell filesystemobject

我在Powershell中使用文件系统对象来进行一些文件夹循环:假设有oldFolder,currentFolder和newFolder,这是过程:

  1. DeleteFolder oldFolder
  2. 将moveFolder currentFolder移至oldFolder
  3. 将newFolder移到currentFolder

在脚本中运行时,步骤2或3会随机抛出CTL_E_PERMISSIONDENIED。 脚本停止后,我重复上一个命令,它正确完成了。

似乎MoveFolder方法工作于半异步状态。

ps:文件夹中包含子文件夹和很多文件

我尝试添加一些延迟,但是不知道发生了什么事我很不高兴。

$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)

1 个答案:

答案 0 :(得分:0)

感谢您的迅速反应。那证实了我的怀疑。

我将尝试使用另一种方法,也许是Lee提出的纯Powershell。