Skip to content

Создание процесса с выводом

Здравствуйте. Возникла такая потребность, создать процесс (например, запуск скрипта или консольный утилиты с аргументами) и записать результат (вывод) в переменную. Знаю как это делается на C#, можете подсказать как это можно будет реализовать на OverScript?

Comments

  • Запустить процесс можно через функцию StartProcess. Сделать, чтобы запускаемая программа сохраняла результат в файл, который потом читать из OverScript по завершении процесса. Или вы как-то по-другому имеете в виду?

  • edited June 2022

    @admin написал:
    Запустить процесс можно через функцию StartProcess. Сделать, чтобы запускаемая программа сохраняла результат в файл, который потом читать из OverScript по завершении процесса. Или вы как-то по-другому имеете в виду?

    Понял, спасибо за ответ. А как будет запуск, например, процесса с аргументами. Вот я хочу запустить программу, получилось вот так:
    StartProcess(clientPathToExe, "'{savePath}' '{uploadFile}'", 0, false);
    savePath и uploadFile могут быть с пробелами и/или двойными кавычками. Как надо будет правильно записать? Скрипт не работает просто. Перед StartProcess делаю replace для двойных кавычек.

  • string exe=@"C:\docs\ArgPassTest.exe";
    string savePath=@"D:\docs\te""st1.txt"; //тут кавычка есть. "" это одна так экранируется.
    string uploadFile=@"D:\docs\test 2.txt"; //тут пробел
    string args=$"'{savePath}' '{uploadFile}'";
    args=args.Replace("\"","");
    StartProcess(exe, args);
    //вот такая строка аргументов будет получена программой ArgPassTest.exe
    //'D:\docs\test1.txt' 'D:\docs\test 2.txt'
    

    Вот так работает.

  • @admin написал:

    string exe=@"C:\docs\ArgPassTest.exe";
    string savePath=@"D:\docs\te""st1.txt"; //тут кавычка есть. "" это одна так экранируется.
    string uploadFile=@"D:\docs\test 2.txt"; //тут пробел
    string args=$"'{savePath}' '{uploadFile}'";
    args=args.Replace("\"","");
    StartProcess(exe, args);
    //вот такая строка аргументов будет получена программой ArgPassTest.exe
    //'D:\docs\test1.txt' 'D:\docs\test 2.txt'
    

    Вот так работает.

    Спасибо.

Sign In or Register to comment.