
Tengo alrededor de 100 archivos pdf en una carpeta con una estructura de nombres como:
- Informe de crédito - Google Inc
- Informe de crédito - BP Plc
- Informe de crédito - Apple Inc.
- Informe de crédito - Saipem spa
Así sucesivamente.
¿Existe algún comando mediante el cual puedo crear nuevas carpetas con nombres como:
- Corporación Google
- BP Plc.
y mover los respectivos pdf
- Informe de crédito - Google Inc
- Informe de crédito - BP Plc
en ellas.
Gracias
(PD: soy un usuario nuevo y tengo problemas con el formato de texto en el foro, así que disculpe cualquier formato extraño)
Respuesta1
MoveToFolders.VBS
FolderSpec="c:\tmp"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder(FolderSpec)
For Each OneFile In SourceFolder.Files
If LCase(Right(OneFile.Name, 4)) = ".pdf" and Instr(OneFile.Name, "-") > 0 Then
FSO.CreateFolder FolderSpec & "\" & Trim(Split(Split(OneFile.Name, "-")(1), ".")(0))
OneFile.Move FolderSpec & "\" & Trim(Split(Split(OneFile.Name, "-")(1), ".")(0)) & "\" & OneFile.Name
end if
Next
Edite "c:\tmp"
, configure su carpeta de origen.
Sólo se mueven los archivos con extensión ".PDF" con un guión en el nombre. Si hay más de 1 guión, solo se utiliza la parte entre el 1.º y el 2.º guión.
El script fallará si ocurre algún error (existe una carpeta, existe un archivo, etc.). Si desea ignorar los errores, agregue On Error Resume Next
una línea antes de la primera línea.