Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 复制最新的文件_Android_Windows_Command Line_Adb_Toybox - Fatal编程技术网

Android 复制最新的文件

Android 复制最新的文件,android,windows,command-line,adb,toybox,Android,Windows,Command Line,Adb,Toybox,我正在使用以下命令将最近添加的文件从连接的设备复制到所需的目录中: adb pull sdcard/Robotium-Screenshots/filename.jpg D:\jenkins\jobs\ 但它只能复制我指定的文件 如何将最新文件从sdcard/Robotium Screenshots/复制到D:\jenkins\jobs\,而不按名称指定它?一种方法是使用以下命令获取文件名: adb shell ls -lt /sdcard/Robotium-Screenshots | head

我正在使用以下命令将最近添加的文件从连接的设备复制到所需的目录中:

adb pull sdcard/Robotium-Screenshots/filename.jpg D:\jenkins\jobs\
但它只能复制我指定的文件


如何将最新文件从
sdcard/Robotium Screenshots/
复制到
D:\jenkins\jobs\
,而不按名称指定它?

一种方法是使用以下命令获取文件名:

adb shell ls -lt /sdcard/Robotium-Screenshots | head -n2 | tail -n+2 | awk '{print $8}'

下面是一个单行程序,它将从指定文件夹中提取上次修改的文件:

adb exec-out "cd /sdcard/Robotium-Screenshots; toybox ls -1t *.jpg 2>/dev/null | head -n1 | xargs cat" > D:\jenkins\jobs\latest.jpg
已知的限制:

  • 它依靠
    ls
    命令根据修改时间进行排序。历史上,Android设备有多个
    coreutils
    源,即
    toolbox
    toybox
    多二进制文件。
    工具箱
    版本不支持基于时间戳的排序。这基本上意味着这在Android 6.0之前的任何版本上都不起作用

  • 它使用
    adb exec out
    命令确保二进制输出不会被
    tty
    损坏。确保将
    平台工具
    更新至最新版本


如果使用类似bash的shell,可以执行以下操作:

adb pull /sdcard/Robotium-Screenshots/`adb shell ls -t /sdcard/Robotium-Screenshots/ | head -1` ~/Downloads

您可以通过cygwin、msys、git for windows(基于msys)获得类似bash的shell。如果您在mac或linux上,您已经有了一个类似bash的shell。

我认为您可能需要编写一个脚本来识别第一个文件,然后使用windows执行adb pullvTad,在您的命令中,
head
tail
awk
正在主机端运行。通过使用
-1
而不是
-l
选项,您可以同时消除
tail
awk
。另外,当您需要将输入限制到特定行,并且您已经在使用
awk
-不需要使用
组合-只需使用
awk
的内置
NR
变量即可