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

Ответить
Аватара пользователя
dot85

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

Сообщение dot85 »

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

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение dot85 »

Код:

Код: Выделить всё

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
Аватара пользователя
dot85

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение dot85 »

Спасибо большое, у меня вот такая ошибка вылетает "сценарий 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
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение Iska »

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
Аватара пользователя
dot85

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение dot85 »

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

может это из за того что второй скрипт это запуск батника в скрытом режиме вот его код



Set WshShell = CreateObject("WScript.Shell")

WshShell.Run "cmd.exe /c internet.exe", 0, false



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



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

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение SendMessage »

В строке

Код:

Код: Выделить всё

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

И не будет никакой разницы - есть слэш или нету слэша.
Аватара пользователя
dot85

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение dot85 »

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



If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateCreated, Date) = 0 Then _

CreateObject("WScript.Shell").Run strScript
Аватара пользователя
SendMessage

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение SendMessage »

Цитата dot85:



если я меняю вместо = 0 пишу > 9 то уже не запускается хотя файл от 25 мая
VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт




Сомневаюсь. Может быть дата последней модификации файла от 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
Аватара пользователя
dot85

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение dot85 »

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



If DateDiff("d", objFSO.GetFile(objFSO.BuildPath(strFolder, strFile)).DateLastModified, Date) = 0 Then _

CreateObject("WScript.Shell").Run strScript
Аватара пользователя
dot85

Re: VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт

Сообщение dot85 »

Цитата dot85:



= 0
VBS/WSH/JS - [решено] скрипт проверяет файл по дате после запускает другой скрипт




Нужно не =0, а >9 - Вам ведь надо проверять на 10-дневную давность. Это я просмотрел в своем последнем посте - скопипастил с Вашего не глядя. Изображение
Ответить

Вернуться в «Скриптовые языки администрирования Windows»