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

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

Ответить
Настройки темы
CMD/BAT - [решено] Скрипт запуска программ по времяни

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


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

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


Добрый день. Прошу прощения если пишу не в ту ветку форума. Нужна ваша помощь в написании скрипта который мог бы запускать определенный exe файл в зависимости от времени на компьютере. К сожалению я сам работал очень мало со скриптами и сам написать такой не смогу

Подробнее о задаче: допустим включается компьютер с 8 утра и до 5 вечера в любое время в этот момент должен запуститься файл 1.exe, и он же должен сам закончить свое выполнение часов в 16:30 а Если компьютер включается с 0 часов до 7 утра то должен запуститься файл 2.exe. и так же закончить свое выполнение часов в 6 утра. Предполагается что данный скрипт будет запускаться планировщиком задач при включении компьютера. оба файла лежат по пути (C:\Program Files\cpustats)

Помогите пожалуйста. Очень нужно для работы

Если нужны доп. данные пишите. Заранее большое спасибо

Отправлено: 12:42, 29-06-2017

 

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


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

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


C:\Users\----------->dir "C:\Program Files\cpustats\night\cpustats.exe"
Том в устройстве C не имеет метки.
Серийный номер тома: 2A14-D888

Содержимое папки C:\Program Files\cpustats\night

29.04.2017 16:25 270*336 cpustats.exe
1 файлов 270*336 байт
0 папок 63*862*890*496 байт свободно

Отправлено: 16:15, 17-07-2017 | #11



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

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


Ветеран


Contributor


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

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


p.igor.kin,
Каюсь. При запуске программы надо еще кавычки. Попробуйте вариант
Код: Выделить весь код
ProgStart = Array("C:\Program Files\cpustats\dau\cpustats.exe", "08:00:00", "18:00:00", _
                "C:\Program Files\cpustats\night\cpustats.exe", "20:00:00", "23:59:59", _
                "C:\Program Files\cpustats\night\cpustats.exe", "00:00:00", "06:00:00")
                
Set WShell = CreateObject("WScript.Shell")

N1 = LBound(ProgStart)
N2 = UBound(ProgStart)
NProg = (N2 - N1 + 1) / 3

On Error Resume Next
For i = 1 To NProg
    PrgName = ProgStart(N1 + 3 * (i - 1))
    TBeg = TimeValue(ProgStart(N1 + 1 + 3 * (i - 1)))
    TEnd = TimeValue(ProgStart(N1 + 2 + 3 * (i - 1)))
    On Error Resume Next
    If TBeg <= Time() And Time() <= TEnd Then
        LL = WShell.Run("""" + PrgName + """", 7, False)
        If Err.Number <> 0 Then
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Msg = ""
            If Not FSO.FileExists(PrgName) Then Msg = vbCrLf + "Файл не найден" + vbCrLf
            LL = WShell.Popup("Обратитесь в техподдержку" + vbCrLf + PrgName + Msg + vbCrLf + CStr(TBeg) + "   " + CStr(TEnd) + "   " + CStr(Time()) + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, 3600, "Программа не запускается", 16)
            WScript.Quit
        End If

    End If
Next
On Error GoTo 0

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


Отправлено: 16:50, 17-07-2017 | #12


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


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

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


Выходит CMD окно в котором написано

failed to open config file config.txt
Press any key to exit

Немнго поясню при запуске программы cpustats.exe он цепляет конфигурацию с файла config.txt который лежит в папке с программой. Судя по всему Программа пытаеться запуститься но не цепляет данный файл. В ручную всю запускается и работает нормально.

Отправлено: 17:00, 17-07-2017 | #13


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


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

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


Цитата megaloman:
p.igor.kin, Эта программа запускается в командном окне? Её надо запускать находясь в папке с Exe? »
Да извиняюсь что не уточнил сразу. Думал не критично

Отправлено: 17:04, 17-07-2017 | #14


Ветеран


Contributor


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

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


Ваша программа запускается, но она не в состоянии найти файлы, необходимые для нормальной работы. Вот вариант.
Код: Выделить весь код
ProgStart = Array("C:\Program Files\cpustats\dau\cpustats.exe", "08:00:00", "18:00:00", _
                "C:\Program Files\cpustats\night\cpustats.exe", "20:00:00", "23:59:59", _
                "C:\Program Files\cpustats\night\cpustats.exe", "00:00:00", "06:00:00")
                
Set WShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

N1 = LBound(ProgStart)
N2 = UBound(ProgStart)
NProg = (N2 - N1 + 1) / 3

On Error Resume Next
For i = 1 To NProg
    PrgName = ProgStart(N1 + 3 * (i - 1))
    TBeg = TimeValue(ProgStart(N1 + 1 + 3 * (i - 1)))
    TEnd = TimeValue(ProgStart(N1 + 2 + 3 * (i - 1)))
    On Error Resume Next
    If TBeg <= Time() And Time() <= TEnd Then
        WShell.CurrentDirectory = FSO.GetFile(PrgName).ParentFolder
        LL = WShell.Run("""" + PrgName + """", 7, False)
        If Err.Number <> 0 Then
            Msg = ""
            If Not FSO.FileExists(PrgName) Then Msg = vbCrLf + "Файл не найден" + vbCrLf
            LL = WShell.Popup("Обратитесь в техподдержку" + vbCrLf + PrgName + Msg + vbCrLf + CStr(TBeg) + "   " + CStr(TEnd) + "   " + CStr(Time()) + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, 3600, "Программа не запускается", 16)
            WScript.Quit
        End If

    End If
Next
On Error GoTo 0

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

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

Отправлено: 17:26, 17-07-2017 | #15


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


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

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


Уважаемый megaloman огромное Вам человеческое спасибо. При запуске Вашего скрипта программа удачно запускается. Проблема осталось только в том что ни как не могу запустить её в планировщике windows 7. Пробовал и C:\Windows\System32\wscript.exe C:\Program Files\cpustats\cpu.vbs и wscript.exe C:\Program Files\cpustats\cpu.vbs и просто C:\Program Files\cpustats\cpu.vbs. Планировщик ни в какую не хочет выполнять данный скрипт( Пишет задача выполняется а ни чего не происходит

И ещё скажите пожалуйста я смотрю вы в скрипте сделали проверку на ошибки я попробовал переименовать папку и точно вышла ошибка "обратитесь в тех поддержку". Нельзя ли это убрать? Тоесть если все хорошо скрипт молча запустился и запустил программу, а если что то не так скрипт просто запустился и молча закрылся. И ещё я заметил что скрипт постоянно висит в диспетчере задач. Тоесть он постоянно работает. Можно как нибудь сделать что бы после запуска нужной программы скрипт закрывал сам себя. Извините если прошу слишком многого. Вы и так мне очень сильно помогли. Спасибо!

Последний раз редактировалось p.igor.kin, 18-07-2017 в 09:45.


Отправлено: 09:39, 18-07-2017 | #16


Ветеран


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

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


Цитата p.igor.kin:
Пробовал и C:\Windows\System32\wscript.exe C:\Program Files\cpustats\cpu.vbs и wscript.exe C:\Program Files\cpustats\cpu.vbs и просто C:\Program Files\cpustats\cpu.vbs. »
Попробуйте обрамить пути с пробельными символами кавычками.

Отправлено: 10:07, 18-07-2017 | #17


Ветеран


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

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


p.igor.kin, Вы уверены, что не запускается именно скрипт?

Отправлено: 10:50, 18-07-2017 | #18


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


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

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


Цитата Iska:
p.igor.kin, Вы уверены, что не запускается именно скрипт? »
Я не вижу запускается он или нет. Но программа которую должен запускать скрипт не запускается 100%. Тоесть варианта тут 2

1) скрипт не запускается
2) скрипт запускается но уже ему не хватает прав на запуск программы

p.s проделал такой опыт. переименовал папку где лежит программа. Запустил скрипт руками и получил ошибку. Тут все верно. Сделал задание в планировщике с выполнять вне зависимости регистрации пользователя запустил задачу и не получил ни чего. Ни ошибки ни запуска программы.

Перепробовал все что только можно все работает только при "выполнять только для зарегистрированного пользователя" А мне это не подходит(

Последний раз редактировалось p.igor.kin, 18-07-2017 в 11:44.


Отправлено: 11:02, 18-07-2017 | #19


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


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

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


Друзья помогите пожалуйста довести до ума поставленную задачу. Заранее всем спасибо! При ручном запуске скрипт полностью работает как надо, а через планировщик не хочет

Рабочий скрипт
Код: Выделить весь код
ProgStart = Array("C:\Program Files\cpustats\dau\cpustats.exe", "08:00:00", "18:00:00", _
                "C:\Program Files\cpustats\night\cpustats.exe", "20:00:00", "23:59:59", _
                "C:\Program Files\cpustats\night\cpustats.exe", "00:00:00", "06:00:00")
                
Set WShell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

N1 = LBound(ProgStart)
N2 = UBound(ProgStart)
NProg = (N2 - N1 + 1) / 3

On Error Resume Next
For i = 1 To NProg
    PrgName = ProgStart(N1 + 3 * (i - 1))
    TBeg = TimeValue(ProgStart(N1 + 1 + 3 * (i - 1)))
    TEnd = TimeValue(ProgStart(N1 + 2 + 3 * (i - 1)))
    On Error Resume Next
    If TBeg <= Time() And Time() <= TEnd Then
        WShell.CurrentDirectory = FSO.GetFile(PrgName).ParentFolder
        LL = WShell.Run("""" + PrgName + """", 7, False)
        If Err.Number <> 0 Then
            Msg = ""
            If Not FSO.FileExists(PrgName) Then Msg = vbCrLf + "Файл не найден" + vbCrLf
            LL = WShell.Popup("Обратитесь в техподдержку" + vbCrLf + PrgName + Msg + vbCrLf + CStr(TBeg) + "   " + CStr(TEnd) + "   " + CStr(Time()) + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description, 3600, "Программа не запускается", 16)
            WScript.Quit
        End If

    End If
Next
On Error GoTo 0

Отправлено: 12:45, 18-07-2017 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] Политика запуска программ paull2006 Microsoft Windows 8 и 8.1 8 02-10-2015 12:41
CMD/BAT - [решено] скрипт для запуска 2-х программ (.exe) meGangstaWorld Скриптовые языки администрирования Windows 8 10-06-2013 21:55
Загрузка - Ускорение запуска программ d_stor Microsoft Windows 7 0 06-01-2013 01:21
CMD/BAT - Как написать CMD скрипт для запуска определенного файла по дате и времени traxomot Скриптовые языки администрирования Windows 1 15-12-2010 11:50
VBS/WHS/JS - Скрипт для последовательного запуска нескольких программ skatet Программирование и базы данных 10 21-11-2007 17:02




 
Переход