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 Next
uma linha antes da primeira linha.