Аргументы командной строки для создания резервной копии данных
Аргументы командной строки лаунчера (TSLab.exe) для создания резервной копии данных
Лаунчер — TSLab.exe. Он выполняет операции, которые нельзя сделать из работающей программы: создание и восстановление резервной копии, обновление, перезапуск. Режим и состав операции задаются только аргументами командной строки. Важно! Нужно обеспечить, чтобы создание резервной копии осуществлялось без запущенного процесса основной программы. Это связано как с системными блокировками некоторых файлов на чтение, так и целостностью данных (когда происходит параллельная запись и чтение группы взаимосвязанных файлов). Лаунчер сам проверяет, запущена ли программа (desktop или консоль) с той же папкой данных, и просит её штатно завершиться; если программа завершиться не может, резервная копия не создаётся (см. «Завершение запущенной программы»). Если задан аргумент -pid, проверка не выполняется: лаунчер ждёт завершения процесса с этим Id.
Формат команды создания резервной копии
TSLab.exe -backup=<zip> [общие аргументы] [разделы данных]
<zip> - Путь к создаваемому архиву.
Переключатель:
-ключ. Аргумент со значением:-ключ=значениеили-ключ="значение с пробелами".Регистр ключей не важен:
-noStopи-nostopравнозначны.Неизвестные ключи молча игнорируются.
Повтор ключа в одинаковом написании (
-pr -pr) приводит к исключению при старте. Если написание отличается только регистром (-pwd=... -PWD=...), исключения нет, действует последнее значение.Ключ отделяется от значения первым знаком
=, остальные=входят в значение: из-pwd=a=bбудет взятоa=b.Значение с пробелами, кавычками или
\на конце берётся в кавычки и экранируется по правилам Windows (CommandLineToArgvW):"внутри значения записывается как\"; обратные слеши, за которыми идёт"(в том числе закрывающая), удваиваются; остальные слеши пишутся как есть.Значение
-pwdпишется в лог лаунчера замаскированным (-pwd=***). При этом пароль остаётся в командной строке процесса, и его могут прочитать другие программы этого же пользователя (Диспетчер задач, WMI).Если значение пути пустое (
-cf=), остаётся значение по умолчанию.
Общие аргументы
Имя лог-файла по умолчанию: launcherAdmin.log, если лаунчер запущен с правами администратора (обычный случай для -backup без -noadmin); иначе launcher.log.
Разделы данных
Эти аргументы выбирают, что попадает в резервную копию.
Поведение
Проверки перед запуском
Путь к архиву не пуст; при -app папка программы существует; права администратора или -noadmin.
При нарушении условия показывается сообщение об ошибке и лаунчер закрывается.
Завершение запущенной программы
Перед созданием резервной копии лаунчер проверяет, запущена ли программа (desktop TSLabApp/TSLabAppW или консоль TSLabConsole) с той же папкой данных (-ad), и просит её штатно завершиться.
Если задан
-pidили-nocheck, проверка не выполняется: с-pidпроцесс известен и завершается сам.Лаунчер подключается к каналу управления программы. Канала нет — программа не запущена, операция выполняется сразу.
Канала нет, но desktop-программа держит признак единственного экземпляра (старая версия, ещё загружается, зависла) — операция отменяется, код
12.С
-noStopзапущенная программа не завершается, операция отменяется, код12.Иначе программе отправляется команда завершения. Программа либо подтверждает её, либо отказывает — тогда операция отменяется, код
10.После подтверждения лаунчер ждёт завершения процесса до
-waitсекунд (по умолчанию 30 минут). Не дождался — код11. Если закрытие в программе отменилось (например, ошибка сохранения), программа сообщает об этом, код10.
Программа завершается без интерактивных вопросов, на любой запрос подразумевается ответ «Да»:
изменённые скрипты и рабочее пространство сохраняются; рабочее пространство, у которого ещё нет файла, не сохраняется;
идущая оптимизация и работающие агенты останавливаются;
режим «сворачивать в трей при закрытии» игнорируется.
Программа отказывает в завершении, если ещё загружается или в ней открыт модальный диалог.
После операции запускается desktop-программа (если не указан -skipStart). Остановленная консоль TSLabConsole заново не запускается.
Создание резервной копии (-backup)
Завершение запущенной программы или ожидание завершения процесса
-pid(если задан).Создание zip-архива (UTF-8, Zip64 при необходимости, пароль из
-pwd).Запуск программы, если не указан
-skipStart.
Окно и отмена
Окно появляется примерно через 2 секунды после старта. Пока лаунчер ждёт завершения программы, в окне идёт обратный отсчёт (-wait, по умолчанию 30 минут). Кнопка отмены прерывает операцию и сразу закрывает лаунчер; программа после отмены не запускается. С -quiet окно и диалоги об ошибках не показываются.
Коды возврата
TSLab.exe — оконное приложение: командная оболочка не ждёт его завершения. Чтобы получить код возврата из скрипта, запускайте с ожиданием:
$p = Start-Process -FilePath "TSLab.exe" -ArgumentList '-backup="D:\Backup\tslab.zip"', '-quiet', '-skipStart' -Wait -PassThru $p.ExitCode
Аргументы в PowerShell записывайте в одинарных кавычках: так " и \ передаются лаунчеру без изменений, например '-pwd="my \"pass\""'.
Подробности ошибки — в логе.
Примеры
Резервная копия основных данных, паролей поставщиков, кешей баров двух поставщиков, примитивов и кубиков:
TSLab.exe -backup="D:\Backup\tslab.backup.202610011200.zip" -appPath="C:\Program Files\TSLab\TSLab 3.0" -theme=Dark -locale=ru -pid=12345 -dsp -cb -cf="C:\Users\user\AppData\Local\TSLab\TSLab 3.0\Caches" -cds="Finam;Binance" -pr -handlers="C:\Users\user\AppData\Local\TSLab\TSLab 3.0\Handlers"
Резервная копия из внешнего скрипта: лаунчер сам завершит запущенную программу, окна не показываются, программа после операции не запускается:
TSLab.exe -backup="D:\Backup\tslab.zip" -quiet -skipStart -wait=600 -dsp -pr
Резервная копия с паролем, включая файлы программы и рабочие пространства, без перезапуска программы:
TSLab.exe -backup="D:\Backup\full.zip" -pwd=secret -appPath="C:\Program Files\TSLab\TSLab 3.0" -app -cg -w="D:\Workspaces" -skipStart
Резервная копия с паролем my pass="1"\, в котором есть пробел, =, кавычки и \ на конце:
TSLab.exe -backup="D:\Backup\full.zip" -pwd="my pass=\"1\"\\" -dsp -pr