Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как прописать ожидание выполнения команды (http://forum.oszone.net/showthread.php?t=235998)

fly380 05-06-2012 07:55 1928310

Как прописать ожидание выполнения команды
 
Решил написать батник для автоматизации прошивки телефона на базе Android.
Суть трудности (в частности для меня я в батниках только начал ковыряться) нужно выполнить команды
Код:

adb shell
su

После выполнения команды adb shell в терминале появляется символ $ и команда su не выполняется (все замирает).
Как прописать ожидание выполнения команды su и после ее ввода ручками продолжения выполнения команд из bat.
Или как сделать чтоб она прописывалась и нажимался Enter?
Устроят оба варианта, а то уже мозг кипит чем больше читаю тем сильнее закипаю)
P.S ногами не пинайте вот решил научиться, мануала много но вот совет нужен.

yurfed 05-06-2012 08:31 1928319

fly380, пауза в 10 секунд.
Код:

ping -n 1 -w 10000 0.0.0.1 > nul

fly380 05-06-2012 08:35 1928321

yurfed, не это не то(( паузу я умею написать мне нужно чтобы батник ждал ввода команды и после того как она будет введена и нажата клавиша Enter он продолжал выполнение следующих команд автоматически. Просто если задать паузу, ну и вывести через скрипт сообщение что нужно ввести команду su то пакет не выполняет дальнейшие команды.

RostVY 05-06-2012 11:31 1928381

я не совсем в курсе, чего ждет adb и с чем его едят, то можно попробовать что-то типа

adb shell << somefile

а в somefile положить символ ентера (#0D, #0A или оба)

fly380 05-06-2012 12:05 1928403

RostVY, за энтер спасибо, но не совсем то попробую написать по другому
adb shell - команда выполняется и ждет ввода следующей команды
Код:

adb shell $
Прописана следующая команда
Код:

su
Но она не выполняется (терминал замерзает после выполнения adb shell ), как я понял ее прийдется ввести ручками, для этого я выведу через скрипт соответствующее сообщение перед выполнением adb shell.
Код:

@echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
@echo WSHShell.Popup("Введите команду su и нажмите Enter"); >> %temp%\mes.js
@start %temp%\mes.js
adb shell

Так вот, как прописать в *.bat чтобы после того как команда su прописана и нажат Enter пакетный файл автоматически приступал к выполнению следующей строки
Код:

chmod 755 /data/local/flash_image
Другими словами ждал выполнения именно команды su. А и еще после выполнения команды su появляется символ рут # (если это важно).

RostVY 05-06-2012 12:59 1928436

а если взять мой пример и в somefile написать su и ентер не работает?

fly380 05-06-2012 13:10 1928441

RostVY, а можно разжевать не совсем понимаю как именно?

RostVY 05-06-2012 13:22 1928447

создать файл somefile , в нем написать команды, которые должны были б вводиться с клавы. т.е.

Код:

su
а потом запустить

Код:

adb shell << somefile

fly380 05-06-2012 13:34 1928454

RostVY, Спасибо!!! Вы человек с большой буквы))) (так работает adb shell < 1.txt) И сразу вопрос а можно в 1.txt задать несколько строк и как их вывести поочередно?

RostVY 05-06-2012 13:48 1928458

думаю, что можно. попробуй напиши туда все комманды, которые нужно выполнить

Цитата:

Цитата fly380
как их вывести поочередно? »

это я не понял, чего надо

fly380 05-06-2012 13:52 1928461

RostVY, а нет спасибо разобрался)) может и не правильно но работает.
В созданном 1.txt прописал несколько строк и думал над тем как их вывести по очереди. Ну решение пришло само собой достаточно после каждой команды оставить пустую строку она выполняет роль энтера ну и следующая за ней команда выводится))
Код:

su

chmod 755 /data/flash_image


fly380 05-06-2012 14:15 1928473

Мда погорячился(( команда su выводится из 1.txt и выполняется корректно, а из этого же 1.txt вывести и выполнить следующую команду chmod 755 /data/local/flash_image?

RostVY 05-06-2012 14:46 1928489

а это команда для adb shell?
в диаловом режиме выполняется правильно?
возможно, что в тхт-файле, ентеры нужно сохранять в юниксовом формате (LF #0A), а не в виндозном (CR+LF #0D+0A) либо только CR (#0D). и не забывайте ентер после chmod

fly380 05-06-2012 15:06 1928505

RostVY, как не тыкаю он мне белеберду выдает

предыдущие команды из самого бат
adb push flash_image /sdcard/flash_image
adb shell выполняются корректно и команда su из 1.txt тоже, а дальше начинается бред(( или выводит команду chmod 755 /data/local/flash_image но не выполняет ее или вообще ругается чуть ли не матом.

RostVY 05-06-2012 15:23 1928521

прицепи тхт-файлик

fly380 05-06-2012 15:28 1928531

Да цеплять то по сути нечего, потому что я толком не могу понять как там прописать энтеры :(
Тыкал значения и так и так, они просто выводятся из txt и толку от этого ноль

RostVY 05-06-2012 15:30 1928532

попробуй эти файлы. но не пересохраняй

http://forum.oszone.net/attachment.p...1&d=1338895864

fly380 05-06-2012 15:30 1928533

сам батник сейчас выглядит так
Код:

@echo off
adb push flash_image /sdcard/flash_image
adb shell < 1.txt
@pause


RostVY 05-06-2012 15:31 1928537

авось с каким-то проканает

adb shell < 1cr.txt

либо

adb shell < 1crlf.txt

либо

adb shell < 1lf.txt

fly380 05-06-2012 15:36 1928540

Во всех случаях результат идентичен((

RostVY 05-06-2012 15:48 1928549

а почему думаешь, что должно так не работать? если диалогово выполнять эти команды результат другой?

fly380 05-06-2012 16:00 1928555

да результат выглядит по другому

а из txt даже если убрать все лишне команда выводится но не выполняется даже по ручному нажатию энтер

RostVY 05-06-2012 16:06 1928561

тогда я сдаюсь и иду пить чай.

fly380 05-06-2012 16:09 1928562

Может быть нужно указать завершение чтения txt для вывода следующей команды, но вот как?

fly380 06-06-2012 23:52 1929714

Народ неужели тут ни кто не знает как справиться с этой ситуацией?


Время: 06:44.

Время: 06:44.
© OSzone.net 2001-