我在Powershell中使用文件系统对象来进行一些文件夹循环:假设有oldFolder,currentFolder和newFolder,这是过程:
在脚本中运行时,步骤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)
答案 0 :(得分:0)
感谢您的迅速反应。那证实了我的怀疑。
我将尝试使用另一种方法,也许是Lee提出的纯Powershell。