Cree carpetas y mueva los archivos respectivos a ellas

Cree carpetas y mueva los archivos respectivos a ellas

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 Nextuna línea antes de la primera línea.

información relacionada