Разбить на разные кубики команды в cmd

Valek_333

Client
Регистрация
16.08.2020
Сообщения
14
Благодарностей
4
Баллы
3
Ребят, всем привет! Выручите пожалуйста)

Имею связку Zennoposter + Appium для автоматизации андроид.

Как разбить по разным кубикам команды ADB через cmd. То есть отправили команду, получили результат, обработали и отправили новую команду соответственно в другом кубике.

Простые команды adb - это понятно, одним кубиком можно обойтись, но у меня все намного за мудренее. Целая программа для адроид которая управляется из командной строки.

Пример в первом кубике
adb shell + id устройства
su
props

А во втором уже отправляем команды из меню программы props.

Пример я нашел в https://zennolab.com/discussion/threads/kak-v-zenopostere-na-c-vypolnit-komandu-adb-shell-cp-folder1-folder2.103027/

C#:
string pathAdb = project.Variables["pathAdb"].Value; // путь к adb
Process cmd = new Process();
cmd.StartInfo = new ProcessStartInfo
{
    FileName = $"cmd.exe",
    CreateNoWindow = true,
    UseShellExecute = false,
    WindowStyle = ProcessWindowStyle.Normal,
    RedirectStandardInput = true,
    RedirectStandardOutput = true,
};
cmd.Start();

//cmd.StandardInput.WriteLine($"cd {pathAdb}"); // переход в директорию с adb // пример нескольких команд
//Thread.Sleep(200);
cmd.StandardInput.WriteLine(string.Format(@"adb devices")); // запросить список активных устройств

cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();

string consoleResponse = cmd.StandardOutput.ReadToEnd().ToString(); // ответ от консоли

MatchCollection matchListDevices = Regex.Matches(consoleResponse, @"(?m)^emulator.+(?=[    ]+(device|offline))"); // получить коллекцию устройств
List<string> listDevices = matchListDevices.Cast<Match>().Select(match => match.Value).ToList();

string device = project.Variables["device"].Value = listDevices[0]; // вывести в переменную первое устройство для наглядности

cmd.Start();

cmd.StandardInput.WriteLine($"adb -s {device} shell getprop ro.build.version.sdk"); // запрос для получения версии sdk

cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();

return consoleResponse = cmd.StandardOutput.ReadToEnd().ToString(); // полный ответ из консоли. Дальше тоже можно очистить геруляркой и работать дальше
Но как команды разбить на разные кубики ума не приложу(( помогите пожалуйста. Заранее всем огромное спасибо)
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 261
Благодарностей
679
Баллы
113
Вырезаешь кусок кода и переносишь его в другой кубик?
 

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 634
Благодарностей
963
Баллы
113
держишь куски кода в переменных. В зависимости от задачи формируешь кубиками один текстовой файл с расширением cmd и следующим кубиком его запускаешь
 
  • Спасибо
Реакции: Valek_333

Valek_333

Client
Регистрация
16.08.2020
Сообщения
14
Благодарностей
4
Баллы
3

Valek_333

Client
Регистрация
16.08.2020
Сообщения
14
Благодарностей
4
Баллы
3
держишь куски кода в переменных. В зависимости от задачи формируешь кубиками один текстовой файл с расширением cmd и следующим кубиком его запускаешь
Идея не плохая. Немного конечно не так как я хотел, но работать будет.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)