Создайте папки и переместите в них соответствующие файлы.

Создайте папки и переместите в них соответствующие файлы.

У меня около 100 PDF-файлов в папке со следующей структурой имен:

  • Кредитный отчет - Google Inc.
  • Кредитный отчет - BP Plc
  • Кредитный отчет - Apple Inc.
  • Кредитный отчет - Saipem spa

Так далее и так далее.

Есть ли команда, с помощью которой я могу создать новые папки с именами типа:

  • Google Inc
  • BP Plc

и переместите соответствующие файлы PDF

  • Кредитный отчет - Google Inc.
  • Кредитный отчет - BP Plc

в них.

Спасибо

(P.S. Я здесь впервые и испытываю трудности с форматированием текста на форуме, поэтому прошу прощения за странный формат)

решение1

Переместить в папки.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

Редактируйте "c:\tmp", укажите исходную папку.

Перемещаются только файлы с расширением ".PDF" с дефисом в имени. Если дефисов больше одного, то используется только часть между первым и вторым дефисами.

Скрипт завершится ошибкой, если возникнет какая-либо ошибка (папка существует, файл существует и т. д.). Если вы хотите игнорировать ошибки, добавьте On Error Resume Nextстроку перед первой строкой.

Связанный контент