I'm using the file system object in Powershell in order to do some folder cycling: let's say having oldFolder, currentFolder and newFolder, this is the process:
- DeleteFolder oldFolder
- MoveFolder currentFolder to oldFolder
- MoveFolder newFolder to currentFolder
When running in script, step 2 or 3 randomly throws CTL_E_PERMISSIONDENIED. When the script stops, I repeat the last command and it finishes correctly.
Seems as if the MoveFolder method works semi asynchronous.
ps: the folders have subfolders and a lot of files
I've tried adding some delay, but I'm not happy not knowing what is happening.
$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)