Выполнение команд из командной строки

#1
Имеется баг с выполнением команд, если эти команды триггерить из командной строки. Баг заключается, что при однократном триггере команды ожидаемое действие выполняется дважды.

Пример 1)
Исходное состояние: открыт канал, идёт его просмотр. Делаем команду /Record
Ожидание: стартовала запись
Фактически выполнилось: на диске появилось два файла с именами filename.ts и
filename(1).ts, запись идёт одновременно в оба файла. Под словом filename я имею в виду имя файла типа "TNT 4 - 19 February 23 03 59" или похожее, как в настройках поставлено

Пример 2)
Исходное состояние: открыт канал, идёт его запись. Делаем команду /Record
Ожидание: запись остановлена
Фактически выполнилось: запись перезапущена в новый файл

Пример 3)
Исходное состояние: открыт канал, идёт его просмотр со звуком. Делаем команду /Mute
Ожидание: звук выключился
Фактически выполнилось: звук икнул на мгновение+появилась osd-полоса, звук не выключился


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

Re: Выполнение команд из командной строки

#3
Не смог повторить, но возможно сама логика /Record не достаточно надёжная потому что в тот момент когда шлёте команду вы не знаете какой статус канала. Он может быть не открылся ещё. Лучше /StartRecord использовать
После SetChannel добавьте секунд 30 паузы

Re: Выполнение команд из командной строки

#4
Prog wrote:
Tue Feb 27, 2018 6:31 pm
Не смог повторить, но возможно сама логика /Record не достаточно надёжная потому что в тот момент когда шлёте команду вы не знаете какой статус канала. Он может быть не открылся ещё. Лучше /StartRecord использовать
После SetChannel добавьте секунд 30 паузы
1) Я не посылаю setchannel, я руками в интерфейсе открываю канал и дожидаюсь, пока он действительно откроется.
2) У меня 100% повторяемость этого бага. Давайте я видео запишу, только скажите, что на нём показать.

Re: Выполнение команд из командной строки

#6
Делаю /Startrecord, получаю точно такую же запись в 2 файла одновременно.

Это не проблема какой-то конкретной команды. Это не проблема системы записи. Дважды выполняется любая команда.
Среди тех, что пробовал: /StartRecord, /Record, /Mute, /PIP, /Fullscreen. Как вы видите, тут не только запись. Все они отрабатывались дважды.

Re: Выполнение команд из командной строки

#8
О компе: winvista x64, kaspersky internet security 16.0.1.445, постоянно запущенный process explorer 14.01.
Ранее на комп были установлены более одной копии программы (все в варианте portable), после чего они все были удалены. После этого установлена единственная копия тоже в portable-варианте. Находится в "program files (x86)/progdvb7". Прописана в системе корректно т.к. инсталлер при обновлении выкатывает файлы именно в эту папку. Обычной non-portable версии в системе не установлено.

Открываю программу кликнув по ярлыку в панели быстрого запуска. Программа открывается. Открываю в ней канал. Жду, пока канал откроется (граф построится и т.д., т.е. всё что надо отрабатывается). В блокноте пишу строку

Code: Select all

"C:\Program Files (x86)\ProgDVB7\ProgDvbNet.exe" /Record
Копирую эту строку. Жму win+r, запускаю cmd. Вставляю скопированную строку. Жму enter. В вышеупомянутом process explorer вижу у cmd запуск-закрытие дочернего ему progdvbnet.exe, при этом в первоначально запущенном вижу, что соответствующая команда отрабатывается дважды.

Re: Выполнение команд из командной строки

#13
Добавлю, что при использовании встроенного планировщика никаких проблем нет. Но в нём и нет всего имеющегося богатства команд.

Какой софт - кроме kaspersky internet security 16.0.1.445 и process explorer 14.01 ничего в голову не приходит. А, ну и ещё - операционка Win Vista x64 sp2 со всеми патчами.

Re: Выполнение команд из командной строки

#14
Upd: проверил на компе у друга. у которого win7, и так же присутствуют касперский и process explorer. Точно так же двойные выполнения происходят. Иными словами, как минимум на двух компах удаётся такое повторять.
Если от меня нужны какие-либо дополнительные подробности, логи или ещё что-то, то спрашивайте.