Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Windows

Как запустить в параллельном процессе и отсоединиться от него? : Windows

24.04.2024 7:43


14.12.2016 23:05
OlegON
 
Уже задавал вопрос и не помню ответа.

Суть - необходимо в батнике, запускаемом по расписанию, сформировать и запустить задачу, которая будет крутиться в фоне (это копирование бекапа) хз сколько времени, но суть - создать этот процесс, отвалиться и рапортовать планировщику, что задача выполнена. Копирование пусть работает фоном.

Очень бы хотелось, чтобы решение подходило всем виндам, начиная с 2003 и не требовало ничего устанавливать, максимум - скачать и положить какой-то exe.

Есть решение?
15.12.2016 07:12
OlegON
 
да вот не могу вспомнить, почему не подходило... ты в той теме раньше же тоже был, еще с назначенными заданиями маялись...
15.12.2016 07:40
student
 
в закладках давно хранится :)



м.б. поможет - там как раз то что ты обозначил
15.12.2016 09:07
OlegON
 
Цитата:
student что ты обозначил
Извини, может я что-то не вижу, но это немного другое, программа просто повисает в памяти, расчитывая на стартап. У меня это сервер, т.е. никакого стартапа не будет долгое время...
15.12.2016 09:30
student
 
Цитата:
OlegON программа просто повисает в памяти, расчитывая на стартап
не понял :(
запускать не обязательно с автозагрузки
запустил один раз и скрипт висит в памяти и мониторит папку - появился файлик в каталоге - скопировали\переместили
если нужно вместо обычного копирования\перемещения что то сделать - можно модифицировать
что еще хорошо - есть "отстрел" копий - запустил второй раз по шедулеру - все прибилось...
15.12.2016 10:00
OlegON
 
Хм, это совсем не сочетается с постановкой задачи, поскольку запускать надо будет так, как будет актуально в зависимости от кучи других условий. Переносить всю логику в постоянно болтающийся скрипт в данном случае не пойдет... Надо именно запустить и отломиться... По моему, это не делал start при каких-то моих условиях, как я помню (я немного поднаврал про запуск батниками, это из оптимизатора запускается)... В общем, если будут какие-то еще идеи - пожалуйста :) А start я проверю еще раз.
15.12.2016 12:14
student
 
Цитата:
OlegON Надо именно запустить и отломиться...
тогда просто - то что ниже гарантированно запустит то что можно запустит и отвалится :)
========
Запуск приложения производится при помощи объекта WScript.Shell. Первая строка для работы с этим объектом выглядит как

Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
Сам запуск производится при помощи метода Run:
WshShell.Run "Имя_приложения"
Необязательные параметры: цифра (1-10) - вид диалогового окна, true/false - приостанавливать выполнение скрипта пока не завершится работа программы или нет.
Обычно существует две ситуации, когда нам нужно запустить приложения из скрипта:
1) запускаем утилиты командной строки (например, из Resource Kit) и нам нужно получить то, что они возвращают
2) запускаем графическое приложение и передаем туда нажатия клавиш
При запуске утилиты командной строки обратить внимание на следующие моменты:
o если нам нужно возвращать код ошибки, делаем это следующим образом:
sReturn = WshShell.Run("ping " & "192.168.1.2", 1, TRUE)
обязательно должно стоять ключевое слово TRUE, иначе возвращаемый код всегда будет 0;
o если нужно получить вывод от утилиты, записываем его при помощи > в текстовый файл, затем открываем на чтение при помощи FSO, скачиваем в переменную и удаляем. В переменной можно искать значение при помощи функции inStr (не найдено - 0, найдено - значение, отличное от 0).
o если используете не исполняемые файлы, а команды интерпретатора (DIR, CD, MD и т.п.), то команда на запуск должна выглядеть как
WshShell.Run("%COMSPEC% /K dir")
%COMSPEC% - чтобы не выяснять, какой командный интерпретатор работает, /K - чтобы не закрывалось окно командного интерпретатора.
o для того, чтобы не зависеть от наличия утилит на компьютере пользователя, есть смысл выложить используемые утилиты на сервер в сети и обращаться к ним по сетевому имени;
Часовой пояс GMT +3, время: 07:43.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.