Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Нужна помощь в VBS(Сбор информации о файлах)

Ответить
Настройки темы
VBS/WSH/JS - Нужна помощь в VBS(Сбор информации о файлах)

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеется корневая папка "photo", в которой содержится № кол-во папок, которое постоянно изменяется. В них содержится неизвестное кол-во файлов, которые постоянно добавляются и редактируются.
Задача №1. Написать скрипт, который создаст файл "info", в котором будет содержаться следующая информация: путь к файлу, размер, дата последнего изменения.
Задача №2. Написать скрипт, который проверит все файлы в корневой папке "photo", сравнит информацию о файле (размер, дата последнего изменения) c содержащимся в файле "info", и в случае появления различий или нового файла, запишет путь к изменившемуся/новому файлу в файл "foredit"

К сожалению в коде я не силен, а времени чтобы поднять знания для выполнения данной задачи нету. Буду благодарен за помощь.

Отправлено: 13:19, 02-09-2011

 

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


ниукого нет никаких идей?

Последний раз редактировалось MakeMeFeel, 04-09-2011 в 19:19.


Отправлено: 19:14, 04-09-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2710
Благодарности: 1686

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Public FSO, Finfo, RegMaska

AllDir = "C:\{Disk_F}\JS_Host"    ' ---------  Полное имя рабочего каталога (без слэжа \ на конце)
Info = "C:\kuku.info"
Maska= "^.*\.xls"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Finfo = FSO.OpenTextFile(Info, 2, True)

Set RegMaska = New RegExp
RegMaska.Pattern = Maska
RegMaska.IgnoreCase = True

Call AllFiles(AllDir)
Finfo.Close

MsgBox "Скрипт завершился"

' ---------------------------------------------------------------------------
Sub AllFiles(WDir)

    Set Folds = FSO.GetFolder(WDir)
    Set SubF = Folds.SubFolders
    Set Files = Folds.Files
         
    For Each jF In Files
	If RegMaska.Test(jf) Then Finfo.WriteLine jF + " " + CStr(jF.DateLastModified) + " " + CStr(jF.Size)
    Next

    For Each Folder In SubF
        Call AllFiles(WDir + "\" + Folder.Name)
    Next

End Sub
Код: Выделить весь код
Public FSO, Finfo, OldFiles, RegMaska

AllDir = "C:\{Disk_F}\JS_Host"                     ' ---------  Полное имя рабочего каталога (без слэжа \ на конце)
Info = "C:\kuku.info"
Edit = "C:\kuku.edit"
Maska= "^.*\.xls"

Set FSO = CreateObject("Scripting.FileSystemObject")

Set RegMaska = New RegExp
RegMaska.Pattern = Maska
RegMaska.IgnoreCase = True

Set Finfo = FSO.OpenTextFile(Info, 1, False)
OldFiles = Finfo.ReadAll
Finfo.Close

Set Finfo = FSO.OpenTextFile(Edit, 2, True)

Call AllFiles2(AllDir)
Finfo.Close

MsgBox "Скрипт завершился"

' ---------------------------------------------------------------------------
Sub AllFiles2(WDir)
    
    Set Folds = FSO.GetFolder(WDir)
    Set SubF = Folds.SubFolders
    Set Files = Folds.Files
         
    For Each jF In Files
	If RegMaska.Test(jf) Then 
        	InFile = jF + " " + CStr(jF.DateLastModified) + " " + CStr(jF.Size)
        	If InStr(OldFiles, InFile) = 0 Then Finfo.WriteLine InFile
        End If
    Next

    For Each Folder In SubF
        Call AllFiles2(WDir + "\" + Folder.Name)
    Next

End Sub
Укажите в скриптах свои пути и нужную маску в регулярном выражении (сейчас там указаны файлы с расширением .xls)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 06-09-2011 в 09:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:26, 05-09-2011 | #3


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


cпасибо еще раз(:

Отправлено: 12:09, 06-09-2011 | #4


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


мне жутко неудобно, но очень нужна помощь. Времени разобраться с vbs к сожаления не дают но требуют исправить скрипт.

info.txt - в нем содержиться имя файла, размер, дата последнего редактирования
foredit.txt - содержит путь к файлу
скрипт ищет только *.jpg файлы

Требуется чтобы в каждой папке, находящейся в корневом каталоге, содержался файл info.txt
Алгоритм должен работать следующим образом:
Проверяется наличие файла info.txt в текущей папке, если файл найден:
создается файл foredit.txt
происходит сравнение текущей информации о файлах с информацией содержащейся в файле "info.txt"
(имя, размер, дата последнего редактирования)
при нахождении различий:
в файл foredit записывается путь к измененному/новому файлу.
запускается внешняя программа со след. параметрами
"d:\nconvert.exe -overwrite -out jpeg -keepfiledate -i -opthuff -rtype lanczos -resize 1600 1200 -q 80 <путь к файлу foredit.txt>"
(программа выполняет все автоматически и сама закрывается)
Скрипт продалжает работу после завершения процесса предыдущей программы
В файл info.txt записывается обновленная информация
Файл foredit.txt удаляется
если различий нет, то скрипт переходит к след. папке


Если файл info.txt не найден:
Создается файл info.txt
Создается файл foredit.txt
В файл foredit.txt записывается путь ко всем файлам находящимся в данной папке
Запускается внешняя программа со след. параметрами:
"d:\nconvert.exe -overwrite -out jpeg -keepfiledate -i -opthuff -rtype lanczos -resize 1600 1200 -q 80 <путь к файлу foredit.txt>"
(программа выполняет все автоматически и сама закрывается)
Скрипт продалжает работу после завершения процесса предыдущей программы
В файл info.txt записывается информация о файлах
Файл foredit.txt удаляется.

Отправлено: 17:03, 08-09-2011 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Нужна помощь в VBS(Сбор информации о файлах)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Отправка почты на VBS (нужна помощь в доработке скрипта) registeruser1 Скриптовые языки администрирования Windows 17 18-02-2014 18:31
Любой язык - Сбор информации о железе удаленных ПК OstJoker Скриптовые языки администрирования Windows 9 21-11-2012 13:38
Сбор информации и разные IP User15 Хочу все знать 7 30-12-2010 11:49
Сбор информации о пользователях и группах. GamblerAN Microsoft Windows NT/2000/2003 5 30-11-2010 12:49
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов 0bject Скриптовые языки администрирования Windows 614 19-01-2009 21:58




 
Переход