我正在尝试从屏幕转储中获取像素的颜色。当我第一次使用'adb shell'时可以使命令正常工作时,我希望能够直接从Windows Shell运行该命令。我已经尝试了this post中的所有建议,但无法正常工作。
"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 |找不到高清
sh文件确实存在于/ system / bin /中,所以我不知道发生了什么。
答案 0 :(得分:-1)
您无需为输入"
输入命令而转义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