Невозможно получить команду оболочки ADB с путем, работающим в оболочке Windows - PullRequest
1 голос
/ 12 марта 2019

Я пытаюсь получить цвет пикселя от скрипада.Хотя я могу заставить команду работать, когда я сначала использую 'adb shell', я хочу иметь возможность запускать команду прямо из оболочки Windows.Я перепробовал все предложения в этом посте , но не могу заставить его работать.

"C:\Program Files\Microvirt\MEmu\adb.exe" -s 127.0.0.1:21503 shell dd if='/sdcard/screen.dump' bs=4 count=1 skip=54950 2>/dev/null | hd

Это возвращает

'система не может найти указанный путь'

Если я попытаюсь:

"C:\Program Files\Microvirt\MEmu\adb.exe" -s 127.0.0.1:21503 shell \"dd if='/sdcard/screen.dump' bs=4 count=1 skip=54950 2>/dev/null | hd\"

Возвращает:

/ system / bin / sh: dd if = '/ sdcard / screen.dump' bs = 4 count = 1 skip = 54950 2> / dev / null |hd not found

Файл sh существует в / system / bin /, поэтому я понятия не имею, что происходит.

1 Ответ

0 голосов
/ 12 марта 2019

Вам не нужно экранировать символ " для ввода команды для adb shell.

"C:\Program Files\Microvirt\MEmu\adb.exe" -s 127.0.0.1:21503 shell "dd if='/sdcard/screen.dump' bs=4 count=1 skip=54950 2>/dev/null | hd"

будет в порядке.

Кроме того, ваш комментарий сказал:

Эта папка уже находится в моей переменной окружения PATH.

Тогда вам не нужно указывать полный путь к adb.

adb -s 127.0.0.1:21503 shell "dd if='/sdcard/screen.dump' bs=4 count=1 skip=54950 2>/dev/null | hd"

тоже в порядке.


Сообщение об ошибке,

/ system / bin / sh: dd if = '/ sdcard / screen.dump' bs = 4 count = 1 skip = 54950 2> / dev / null | не найден

указывает на то, что не существует исполняемого файла с именем "dd if = '/ sdcard ... null | hd", но вы просто нуждаетесь в них в качестве параметров, а не полного имени исполняемого файла.


Для вашей первой попытки,

"C:\Program Files\Microvirt\MEmu\adb.exe" -s 127.0.0.1:21503 shell dd if='/sdcard/screen.dump' bs=4 count=1 skip=54950 2>/dev/null | hd

Эта команда будет относиться к hd за пределами adb shell, она будет выполняться из командной строки Windows.

Обновление : мы можем использовать параметр od или hd для выполнения некоторых трюков.
Например, на моем устройстве busybox od имеет параметр [-t TYPE], [-A RADIX], [-N SIZE] и [-j SKIP], тогда на моем телефоне я могу сделать

adb shell od -N4 -j54950 -tx1 -Ax /sdcard/screen.dump
...