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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

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


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

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


Я полный чайник в написании скриптов, не могли бы вы мне помочь написать скритп который проверяет файл в определеной папки допустим C:/doci/test и если он 10 дневной давности то запускает другой скрипт для обновления допустим с названием "internet" (скрипт на обновление у меня уже есть)

Отправлено: 03:02, 31-07-2011

 

Старожил


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

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


Код: Выделить весь код
Option Explicit

Dim strFolder
Dim strFile
Dim strScript
Dim objFSO

strFolder = "C:\doci\test\"
strFile = "file.ext"
strScript = "x:\internet.vbs"

Set objFSO = CreateObject("Scripting.FileSystemObject")

If DateDiff("d", objFSO.GetFile(strFolder & strFile).DateCreated, Date) > 9 Then _
  CreateObject("WScript.Shell").Run strScript
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:33, 31-07-2011 | #2



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

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


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


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

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


Спасибо большое, у меня вот такая ошибка вылетает "сценарий E:\banronv\start.vbs строка 14 символ 84 недопустимый знак код 800A0408 источник ошибка компиляции Microsoft VBScript"
при таком скрипте неподскажите где закралась ошибка

Option Explicit

Dim strFolder
Dim strFile
Dim strScript
Dim objFSO

strFolder = "E:\banronv\demonsr"
strFile = "LAST_REC.TXT"
strScript = "E:\banronv\interne.vbs"

Set objFSO = CreateObject("Scripting.FileSystemObject")

If DateDiff("d", objFSO.GetFile(strFolder & strFile).DateCreated, Date) > 9 Then _ CreateObject("WScript.Shell").Run strScript

Последний раз редактировалось dot85, 31-07-2011 в 14:26.


Отправлено: 14:21, 31-07-2011 | #3


Ветеран


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

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


dot85, чтобы не было таких ошибок, код на форуме специально оформляется тэгом «code». И не надо было ничего в нём менять, нужно было копировать всё «как есть»:
Код: Выделить весь код
If DateDiff("d", objFSO.GetFile(strFolder & strFile).DateCreated, Date) > 9 Then _
  CreateObject("WScript.Shell").Run strScript
ибо это не одна, а две строки кода.
читать дальше »
Либо, если решили сделать из этого одну строку, то убирайте символ продолжения строки кода «_»:
Код: Выделить весь код
If DateDiff("d", objFSO.GetFile(strFolder & strFile).DateCreated, Date) > 9 Then CreateObject("WScript.Shell").Run strScript
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:46, 31-07-2011 | #4


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


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

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


я экспериментировал убирал это символ _ , в одну строку делал даты папки менял и файла дату менял на 10 и более дней скрипт почему то условия не выполняет т.е запуск второго скрипта
может это из за того что второй скрипт это запуск батника в скрытом режиме вот его код

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c internet.exe", 0, false

может его как то объеденить с первым скриптом

internet.exe это батник который я конвертировал с помощью этой программы Advanced BAT to EXE Converter v2.45

Последний раз редактировалось dot85, 31-07-2011 в 20:41.


Отправлено: 20:07, 31-07-2011 | #5


Старожил


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

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


В строке
Код: Выделить весь код
strFolder = "E:\banronv\demonsr"
нужно ставить слэш после маршрута папки:
Код: Выделить весь код
strFolder = "E:\banronv\demonsr\"
Иначе файл LAST_REC.TXT не будет найден.


В качестве самокритики »

Сам виноват, надо было просто использовать однозначные решения, вместо:
Код: Выделить весь код
If DateDiff("d", objFSO.GetFile(strFolder & strFile).DateCreated, Date) = 0 Then _
  CreateObject("WScript.Shell").Run strScript
достаточно просто написать
Код: Выделить весь код
If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateCreated, Date) = 0 Then _
  CreateObject("WScript.Shell").Run strScript
И не будет никакой разницы - есть слэш или нету слэша.

Последний раз редактировалось SendMessage, 01-08-2011 в 13:25.

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

Отправлено: 13:07, 01-08-2011 | #6


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


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

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


Спасибо большое при таком коде он запускается но если я меняю вместо = 0 пишу > 9 то уже не запускается хотя файл от 25 мая а вот при < 9 тоже запускается

If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateCreated, Date) = 0 Then _
CreateObject("WScript.Shell").Run strScript

Последний раз редактировалось dot85, 01-08-2011 в 13:50.


Отправлено: 13:29, 01-08-2011 | #7


Старожил


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

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


Цитата dot85:
если я меняю вместо = 0 пишу > 9 то уже не запускается хотя файл от 25 мая »
Сомневаюсь. Может быть дата последней модификации файла от 25 мая? Если Вы его скопировали - дата создания меняется на текущую в момент этого действия. Чтобы файл проверялся на дату последнего изменения, нужно заменить
Код: Выделить весь код
If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateCreated, Date) = 0 Then _
  CreateObject("WScript.Shell").Run strScript
на
Код: Выделить весь код
If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateLastModified, Date) = 0 Then _
  CreateObject("WScript.Shell").Run strScript
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:51, 01-08-2011 | #8


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


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

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


C этим кодом все заработало. Спасибо большое. сейчас еще чучуть поэкперементирую и закрою тему

If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateLastModified, Date) = 0 Then _
CreateObject("WScript.Shell").Run strScript

Отправлено: 13:59, 01-08-2011 | #9


Старожил


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

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


Цитата dot85:
= 0 »
Нужно не =0, а >9 - Вам ведь надо проверять на 10-дневную давность. Это я просмотрел в своем последнем посте - скопипастил с Вашего не глядя.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:22, 01-08-2011 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Не работает скрипт копирования самого свежего файла по текущей дате dark-------13 Скриптовые языки администрирования Windows 6 18-02-2016 08:42
Как сделать скрипт, который запускает определённую программу или файл VadimN96 Автоматическая установка Windows 2000/XP/2003 1 07-01-2011 21:24
CMD/BAT - Как написать CMD скрипт для запуска определенного файла по дате и времени traxomot Скриптовые языки администрирования Windows 1 15-12-2010 11:50
VBS/WSH/JS - [решено] Скрипт обновления файла с проверкой по дате изменения. CtrlD Скриптовые языки администрирования Windows 2 17-07-2010 10:45
скрипт для дампа базы и отправки на другой хост nix_lamer Программирование в *nix 5 12-02-2007 14:09




 
Переход