使用ADB检查目录是否存在,如果存在则推送文件

时间:2012-06-05 16:26:27

标签: android batch-file adb

我需要能够测试并查看Android设备的SD卡上是否存在目录,然后将一些文件推送到该目录(如果存在)。

到目前为止,我有这个:

adb %argument% shell if [ -e /sdcard/ ]; then echo "it does exist"; else echo "it does not exist"; fi;

但是如何让我的批处理脚本知道该目录是否存在以便它可以继续将文件推送到该目录?

4 个答案:

答案 0 :(得分:3)

以下是我在批处理脚本中所做的事情:

set cmd="adb shell ls | find /c "theFile" "
FOR /F %%K IN (' !cmd! ') DO SET TEST=%%K
if !TEST! GTR 0 (
    echo the file exists
) else (
    echo the file does not exist
)

可能有多个文件符合fileName,因此我选择让它测试大于0。


要测试完全匹配并在Linux中使用bash(reference):

FILENAME_RESULT=$(adb shell ls / | tr -d '\015'|grep '^fileName$')

if [ -z "$FILENAME_RESULT" ];
then
        echo "No fileName found."
else
        echo "fileName found."
fi

答案 1 :(得分:1)

我认为您应该列出目录dir or ls,然后使用grep进行分析。如果grep找到目录脚本做某事。

答案 2 :(得分:0)

1)只需使用adb shell ls / filepath> fileifpresent

2)grep本地如果"没有这样的文件或目录"现在,然后没有

 Else Directory Present

答案 3 :(得分:0)

以下是我将如何检查命令的退出状态

MyFile="Random.txt"
WorkingPath="/data/local/tmp/RandomFolder"

IsDir=`adb shell ls $WorkingPath &> /dev/null ; echo "$?"`

if [ $IsDir == 0 ] ; then 

   echo "Exist! Copying File To Remote Folder"

   adb push $MyFile $WorkingPath

else

   echo "Folder Don't Exist! Creating Folder To Start Copying File"

   adb shell mkdir $WorkingPath

   adb push $MyFile $WorkingPath

fi