Crie pastas e mova o respectivo arquivo para elas

Crie pastas e mova o respectivo arquivo para elas

Tenho cerca de 100 arquivos PDF em uma pasta com estrutura de nomes como:

  • Relatório de crédito - Google Inc.
  • Relatório de Crédito - BP Plc
  • Relatório de crédito - Apple Inc
  • Relatório de crédito - Saipem spa

E assim por diante.

Existe um comando através do qual eu crio novas pastas com nomes como:

  • Google Inc
  • BP Plc

e mova os respectivos pdfs

  • Relatório de crédito - Google Inc.
  • Relatório de Crédito - BP Plc

neles.

Obrigado

(PS: Sou um usuário iniciante e estou lutando com a formatação de texto no fórum, então desculpe qualquer formato estranho)

Responder1

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", defina sua pasta de origem.

Somente arquivos com extensão ".PDF" com um traço no nome serão movidos. Se houver mais de 1 travessão, apenas a parte entre o 1º e o 2º travessão será usada.

O script falhará se ocorrer algum erro (existe pasta, existe arquivo e assim por diante). Se você quiser ignorar os erros, adicione On Error Resume Nextuma linha antes da primeira linha.

informação relacionada