CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Компьютерный форум > Форум Windows > Форум Администрирование Windows > Форум VBScript/WSH

Ответ Создать новую тему
 
Старый 03.02.2012, 00:50   #1
malder_d
Новичок
 
Регистрация: 03.02.2012
Сообщений: 3
Репутация: 0 (0)
По умолчанию Копирование файлов определенного формата с сетевого диска

Добрый вечер!!
Помогите в реализации написании скрипта.
Задача: существует сетевая папка в которую в течении дня попадают разные типы файлов, достигать может около 200. меня интересуют только файлы с расширением *.xls, данные файлы приходят в разное время. Необходимо если это возможно чтобы скрипт мониторил сетевую папку, допустим каждый 5 мин, и при появлении новых *.xls файлов копировал их мне в папку допусти d:\DOC, при этом скриптик должен учитывать что в сетевой папке появляются новые *.xls файлы и он не должен копировать снова все файлы ексель а только те новые которые появились.
пока что я могу просто копировать определенный тип файлов, но как сделать мониторинг и как сделать чтобы копировались только новые поступившие файлы не знаю.

Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
StartFolder = "d:\eee1" ' откуда копируем
EndFolder = "d:\www\" ' куда копируем
'***********************************************
Set StartFiles = CreateObject("Scripting.FileSystemObject")
Set WSNetwork = CreateObject("WScript.Network")
num = 0
'копируем файлы
For Each File in StartFiles.GetFolder(StartFolder).Files
If LCase(StartFiles.GetExtensionName(File)) = "xls" Then
StartFiles.CopyFile File, EndFolder & File.Name, True
num = num+1
End If
Next
'сообщаем о результатах копирования
If Err.Number Then
WScript.Echo "Обновление прошло с ошибками. Сообщите об этом администратору."
else
WScript.Echo "Обновление прошло успешно. Скопировано " & num & " файлов."
Err.Clear
End if

Последний раз редактировалось Памирыч; 03.02.2012 в 05:22. Причина: Используйте специальные теги форматирования программного кода
malder_d вне форума
Другие темы раздела
Выполнение и логирование файла с параметрами VBScript/WSH
Добрый день, дамы и господа. Прошу помогите, ни как не могу сообразить, как логировать операцию в файл. @echo off set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "c:\Windows\System\wbadmin.exe -BackupTarget:\\...\... -allCritical -quiet". Выполнение и логирование файла с параметрами
Как прикрепить текст из файла в тело письма VBScript/WSH
Добрый день. Помогите. Как прикрепить текст из файла в тело письма?. Как прикрепить текст из файла в тело письма
Старый 03.02.2012, 08:35   #2
AShurup
Новичок
 
Регистрация: 22.09.2011
Сообщений: 42
Репутация: 3 (3)
По умолчанию Re: Копирование файлов определенного формата с сетевого диска

Вижу решение такое:
1. Создаем список имен файлов с нужным расширением, которые есть в папке StartFolder во временный файл "1".
2. Создаем список имен файлов с нужным расширением, которые есть в папке EndFolder во временный файл "2".
3. Сверяем построчно содержимое этих файлов. Если нет в списке копируем нужные файлы.
4. Удаляем временные файлы.
5. Все это в цикл с задержкой в 5 минут.
AShurup вне форума
Старый 03.02.2012, 21:19  [ТС]   #3
malder_d
Новичок
 
Регистрация: 03.02.2012
Сообщений: 3
Репутация: 0 (0)
По умолчанию Re: Копирование файлов определенного формата с сетевого диска

Ребята есть еще идеи???
malder_d вне форума
Старый 06.02.2012, 07:58   #4
AShurup
Новичок
 
Регистрация: 22.09.2011
Сообщений: 42
Репутация: 3 (3)
По умолчанию Re: Копирование файлов определенного формата с сетевого диска

Наверняка можно обойтись без временных файлов... только не знаю как
AShurup вне форума
Старый 21.02.2012, 16:34   #5
Smith&Wesson
Новичок
 
Регистрация: 05.05.2011
Сообщений: 40
Репутация: 5 (5)
По умолчанию Re: Копирование файлов определенного формата с сетевого диска

Может пробовать, копировать файлы, которые появились на диске, позже времени запуска последней отработки копирования? Например, запускаем батник (копируем файлы) => записываем в переменную (например %first%) текущую дату и время (%date% %time%).
Через пять минут, снова запускаем батник и сравниваем дату создания файлов с %first%, если она отличается (т.е. файлы были созданы после %first%), соответственно копируем эти файлы, куда нужно.
Лучше использовать команду XCOPY с параметром /D:m-d-y (Копирование файлов, измененных не ранее указанной даты).
Вот, примерно так...
Единственная сложность - не знаю, как точно выполнять сравнение даты (времени) файлов. Конструкция,
Код
1
if %~t1 GTR %first% exit /b
в данном случае, может не работать... Нужно проверять...

Последний раз редактировалось Памирыч; 21.02.2012 в 17:37.
Smith&Wesson вне форума
После регистрации реклама в сообщениях будет скрыта
Старый 27.02.2012, 01:15  [ТС]   #6
malder_d
Новичок
 
Регистрация: 03.02.2012
Сообщений: 3
Репутация: 0 (0)
По умолчанию Re: Копирование файлов определенного формата с сетевого диска

Добрый вечер, я все-таки реализовал свою задачу, по примеру предложеному AShurup, за что емк и спасибо. Может вариант и не очень удачный о все работает.

Принцип реализации моей задачи такой:
1. Проверяем наличие файла в папке с помощью функции DIR.
2. Проверяем есть ли в текстовом файле наличие такого имени файла, если нет записываем и копируем сам файл в нужную папку.
3. Если имя файла уже такое есть, ничего не делаем.
4. С помощью цикла do while по очереди проверям все найденные файлы в папке с именам ва временном тестовом файле.
5. Реализовываю таймер, и каждый 2 мин проверяю наличие вновь поступивших фалов.
6. В начале запуска программы, по кнопке в форме, очищаю два временных текстовых файла от тех значений которые были записаны в течении дня.
malder_d вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
C++ Builder Подключение сетевого диска
здравствуйте. Опишу проблему/задачу. Я сделал обычную форму авторизации. поля ввода и кнопка(по сути неважно). При нажатии на кнопку подключается сетевой диск, но не просто подключается а переименовывается как нужно. Проблема в том что диск подключается но не переименовывается. НО! когда повторно...
freeddos
Windows XP копирование файлов с одного логического диска на другой
Ребята подскажите как быть на компе 2 логических диска и когда я переношу файл с одного а другой он какбы копируется тоесть остаётся на обоих дисках. Никто не знает можно ли как-нибудь сделать так чтобы файлы перемешались нормально, или это не возможно? Ужасно бесит что нужно потом кажый раз...
Leno4ka Blondy
C++ Builder Поиск файлов определенного формата в папке, и во всех вложенных
Всем привет. Такая задача. Имеетса папка, в которой находятса многа папок. И в этих папках есть документы одного формата. Надо сделать так, когда выбираеш одну папку, он ищет файл определенного формата в этой папке, и во всех которые в него вложены. Вес список папок должно отображатса в ListBox-e....
frech
VBA Придание определенному тексту определенного формата.
Как можно оформить выделенные полужирным фрагменты одним форматом? У кого есть какие соображения по этому поводу? Обратите внимание, что выступы первой строки разные. Необходимо сделать выступы у текста, оформленного таким видом, одинаковые?
Busine2009
Visual Basic Стандартная программа для октрытия определенного формата файлов.
Можно делать чтоб примеру виндоуским explorere открыл свойству файл с расширением скажем *.xxx открыл собственный диалог свойства файла, как вордовских докуменов (*.doc). Спасибо
Grish
Опции темы

Текущее время: 06:20. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru