У меня около 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
строку перед первой строкой.