Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
VBS

Перезапуск процесса с разными параметрами

17.12.2018, 20:33. Показов 2068. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго Вечера.
Есть такое задание.

Нужно сделать скрип который запускает мой процесс с нужными параметрами:

Как примеру первый параметр такой:

-s -a 246 -p 5630

Так вот, после 3 минут скрипт вырубает процесс и перезапускает его с другими параметрами:

-s -a 326 -p 5630

Ждем 5 минут, снова перезапуск с параметрами:

-s -a 762 -p 5630

Снова ждет 3 минут, затем снова перезапускает процесс с другими параметрами и так далее по кругу.

Параметров будут где-то 6-8 штук. Как прошел все параметры, снова начинаем перезапуск процесса с первого параметра и таймера:

-s -a 246 -p 5630

В общем нужно настроить таймер и параметры в 8 разных случаев и перезапускать процесс по крону.

Буду благодарен тому кто поможет.
Всех с Наступающим!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2018, 20:33
Ответы с готовыми решениями:

Перезапуск программы с параметрами
Примет батника :start SET SEARCH=wget.exe tasklist /fi "imagename eq %SEARCH%" /fo table /nh > %TEMP%\tmp.tmp find /c...

Перезапуск процесса
Знаю, что тема изъезжена, но не смог найти для себя решения #include <QCoreApplication> #include <windows.h> #include...

Автоматический перезапуск процесса
Есть файл *.php который по сути является сокет сервером. Этот файл с помощью init script`a запускается у фоне, и работает. Мне нужно...

6
6970 / 2864 / 1100
Регистрация: 06.06.2017
Сообщений: 9,722
18.12.2018, 05:25
Visual Basic
1
2
3
4
5
Set oWSH = CreateObject("WScript.Shell")
For Each N in Array(246,326,762)
  Set Exe = oWSH.Exec("Process.exe -s -a " & N & " -p 5630")
  WSH.Sleep 180000 : Exe.Terminate
Next
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
18.12.2018, 16:22  [ТС]
FlasherX, Добрый день. У меня ехе-шник запустился, однако сама консоль показывается черным, что-то не так в этом скрипте с параметрами запуска.

Нашел рабочий вариант, запускает процесс с параметрами правильно, однако это чуть под другие цели работает.
Сможете переписать функционал под мою задачу?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'Наблюдение на текущем компьютере за НЕ ИНТЕРАКТИВНЫМ процессом
'и перезапуск его, если он остановлен
Dim objWMI, objCollection, objInstance, objItem, objConfig
Dim intErr, intTemp, lngProcID, blnFound, i
Dim strPath, strProcess, strCmdLine, strHandle, strTemp1, strTemp2
 
strPath = "C:\New Folder\file.exe"
strProcess = "file.exe"
strCmdLine = "-s -a 246 -p 5630"
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"): Set objInstance = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
Set objConfig = objWMI.Get("Win32_ProcessStartup").SpawnInstance_
objConfig.ShowWindow = 1
intErr = 0: blnFound = False
Set objCollection = objWMI.ExecQuery("SELECT Name,CommandLine,Handle FROM Win32_Process WHERE Name='" & strProcess & "'")
If objCollection.Count > 0 Then
    For Each objItem In objCollection
    strTemp1 = objItem.CommandLine
    strTemp2 = objItem.Handle
Next
    If InStr(1, strTemp1, strCmdLine, vbTextCompare) > 0 Then
        strHandle = CLng(strTemp2)
        blnFound = True
    End If
End If
If Not blnFound Then
    intErr = objInstance.Create(strPath & " " & strCmdLine, null, objConfig, lngProcID)
    If intErr = 0 Then
        strHandle = lngProcID
    Else
        WScript.Quit
    End If
End If
On Error Resume Next
Set objCollection = objWMI.ExecNotificationQuery("SELECT * FROM __InstanceDeletionEvent " & _
    "WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='" & strProcess & "'")
If Err.Number = 0 Then
    Do
        Set objItem = objCollection.NextEvent
        If Err.Number = 0 Then
            lngProcID = CLng(objItem.TargetInstance.Handle)
            If strHandle = lngProcID Then
                intErr = objInstance.Create(strPath & " " & strCmdLine, null, objConfig, lngProcID)
                If intErr = 0 Then
                    strHandle = lngProcID
                    Do
                        WScript.Sleep 2000
                        intTemp = objWMI.ExecQuery("SELECT Name,Handle FROM Win32_Process WHERE Name='" & strProcess & "' AND Handle='" & CStr(strHandle) & "'").Count
                        If intTemp = 0 Then
                            intErr = objInstance.Create(strPath & " " & strCmdLine, null, objConfig, lngProcID)
                            If intErr = 0 Then
                                strHandle = lngProcID
                            Else
                                Err.Clear
                                WScript.Quit
                            End If
                        Else
                            Exit Do
                        End If
                    Loop
                    Else
                    Err.Clear
                    WScript.Quit
                End If
            End If
        Else
            WScript.Quit
        End If
    Loop
Else
    WScript.Quit
End If
Set objItem = Nothing: Set objCollection = Nothing: Set objConfig = Nothing: Set objInstance = Nothing: Set objWMI = Nothing
WScript.Quit 0
0
6970 / 2864 / 1100
Регистрация: 06.06.2017
Сообщений: 9,722
18.12.2018, 16:37
Slackerok, не вижу смысла огород городить. Что вы изменили в скрипте?
1
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
18.12.2018, 16:54  [ТС]
FlasherX, Поставил скрипт в папке своей и отредактировал только название ехе-шника:

Visual Basic
1
2
3
4
5
Set oWSH = CreateObject("WScript.Shell")
For Each N in Array(246,326,762)
  Set Exe = oWSH.Exec("DCServer.exe -s -a " & N & " -p 5630")
  WSH.Sleep 180000 : Exe.Terminate
Next
Не сработало. Запускает консольку, однако она пустая (черная).
К тому же скрипт отключается после 3 перезапусков консоли, а мне нужно чтобы по крону ходил от начала до конца.
Также таймер мне нужно настройть для каждого -a отдельно:

-s -a 246 -p 5630

Так вот, после 3 минут скрипт вырубает процесс и перезапускает его с другими параметрами:

-s -a 326 -p 5630

Ждем 5 минут, снова перезапуск с параметрами:

-s -a 762 -p 5630

Потом ждем 4 минуты и запускаем снова с первого параметра.
И так до 8 параметров нужно настроить.
----------------------
Со вторым (длинным) скриптом запустило консольку все ок.

Если можете, сделайте полноценный скрипт пожалуйста, я совсем в данных скриптах не шарю.
0
6970 / 2864 / 1100
Регистрация: 06.06.2017
Сообщений: 9,722
18.12.2018, 18:28
Лучший ответ Сообщение было отмечено Slackerok как решение

Решение

Цитата Сообщение от Slackerok Посмотреть сообщение
Не сработало. Запускает консольку, однако она пустая (черная).
Странно.
Цитата Сообщение от Slackerok Посмотреть сообщение
мне нужно чтобы по крону ходил от начала до конца.
По крону — это по расписанию. А судя по "запускаем снова с первого параметра", надо зациклить.

Visual Basic
1
2
3
4
5
6
7
8
9
Option Explicit
Dim oService, N, PID
Set oService = GetObject("winmgmts:\\.\root\CIMV2")
Do
  For Each N In Split("246:3 326:5 762:3")
    oService.Get("Win32_Process").Create "DCServer.exe -s -a " & Split(N,":")(0) & " -p 5630",,, PID
    WSH.Sleep 60000*Split(N,":")(1) : oService.Get("win32_process.Handle=" & PID).Terminate
  Next
Loop
В пятой строке числа и через двоеточие последующие минуты на ожидание.
2
1 / 1 / 0
Регистрация: 02.02.2013
Сообщений: 38
18.12.2018, 18:41  [ТС]
FlasherX, Спасибо! Теперь сработал как надо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2018, 18:41
Помогаю со студенческими работами здесь

Перезапуск процесса для ubuntu 14.04
for ((i=1; i <3; i++)) do killall -KILL firefox sleep 2 firefox sleep 10

Отключить перезапуск процесса explorer
Привет. Как отключить авто-перезапуск эксплорера в Win10? А то постоянно папки закрываются при подключении USB-жесткого диска, после...

Перезапуск процесса после его завершения
Доброго суток. Бат вообще не знаю. создаваться будет бат программно(Delphi). Нужно реализовать такой алгоритм - пока работает процесс...

Перезапуск процесса с правами администратора (UAC)
Доброго времени суток. Столкнулся с проблемой при решении задачи. Мне необходимо создать файл в некотором каталоге. Путь к каталогу...

Перезапуск процесса, если он потребляет мало памяти
добрый вечер. Столкнулся с необходимостью перезапускать процесс если он перестал работать, я думаю это можно отслеживать по количеству...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru