Tengo un problema, estoy escribiendo un script para eliminar los folders redundantes.
Es decir, convertir C:\Folder\Folder\contenido
en C:\Folder\contenido
La base de mi script seria esto:
Pero me falla a la hora de renombrar de regreso en la linea 9.Código:'VBScript sPath = "D:\TEMP\TEST" DIM FSO : Set FSO = CreateObject("Scripting.FileSystemObject") set oFolder= FSO.GetFolder(sPath) for each oSubFolder in oFolder.SubFolders if oSubFolder.name = oFolder.name Then oSubFolder.name = oSubFolder.name & "_temp" oSubFolder.Move oFolder.ParentFolder & "\" oFolder.delete oSubFolder.name = Left(oSubFolder.name, Len(oSubFolder.name) - 5) end if next
Line 9 Char 1 [File already exists]
Pero no existe porque lo acabo de borrar una linea mas arriba.
Ya intente con comandos FSO y lo mismo.
Intente con un if not FSO.FolderExists y este parece que es el unico comando que reconoce que el folder [oFolder] ha sido borrado.
SubFolder.Count me dice que hay 2 folders. O sea reconoce el borrado como si existiera aun. Pero a la hora de hacer un for loop con para que me arroje los SubFolders, solo me da 1. Claro porque solo hay 1!!!
No entiendo que hago mal, alguna idea?
Al final mi recurso fue hacer dos subrutinas, una para mover y borrar y la segunda para renombrar de vuelta. El script funciona, pero me gustaria hacerlo con menos loops.
Si a alguien le interesa este es el script:
http://myara.web.fc2.com/Scripts/mRe...derCleaner.vbs