Тема: VBS сортировка файлов по содержимому
Есть папка с файлами txt, в каждом файле есть строка вида
Sum=1742,00
Это сумма заказа. Строка иногда на 10й иногда на 9й строчке файла
Строка уникальна, больше в файле не повторяется.
Нужно заказы с суммой более 1500 копировать в другую папку.
Я нашел похожий скрипт и попытался переделать его под себя.
Что у меня не выходит
1. Как найти строчку по слову Sum? нужно перебирать все строки, пока первые 3 символа строки не совпадут? потом запомнить номер этой строки для дальнейших действий?
2. Как присвоить переменной b число после "Sum=" (сейчас я так понимаю ей присваивается текст)
3. В скрипте во время тестов я попытался копировать файл в папку e:\temp\zakaz\1500 - при запуске выдается ошибка что нужно разрешение.
Извиняюсь за глупые вопросы )
Вот скрипт.
'************************************************************************************************
'Скрипт должен искать строку суммы заказа в файле, затем по сумме заказа копировать файл в нужную папку
'***********************************************************************************************
Option Explicit
dim oFSO, oFolder, oFolder1, oFile, oFileCopy
dim coll
dim a, b
set oFSO=CreateObject("Scripting.FileSystemObject") 'Создаем объектную модель FSO
set oFolder=oFSO.GetFolder("e:\temp\zakaz") 'Даем доступ к папке e:\temp\zakaz\ и создаем объект Folder
set oFolder1=oFSO.GetFolder("e:\temp\zakaz\1500") 'Даем доступ к папке e:\temp\zakaz\1500 и создаем объект Folder
For Each a in oFolder.Files 'Наполняем массив а значениями из папки e:\temp\zakaz\ через свойство объекта Folder.Files
coll = a.Path 'Узнаем путь к каждому файлу из массива
set oFile = oFSO.OpenTextFile(coll, 1, 0) 'Открываем файл для чтения
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.SkipLine
oFile.Skip 24
b = oFile.Read (7) 'Считываем 10 строку и 7 символов стоки и просваиваем значение переменной b
Call MySub
oFile.Close 'Закрываем файл
Next
Sub MySub 'Процедура сортирует файлы в зависимости от содержания переменной b
If b > 1500 then
set oFileCopy=oFSO.GetFile(coll)
oFileCopy.Copy"e:\temp\zakaz\0"
End If
End Sub
set oFolder=Nothing
set oFile=Nothing
set oFileCopy=Nothing
set oFSO=Nothing
MsgBox "Конец сортировки"