我需要能够测试并查看 Android 设备的 SD 卡上是否存在目录,然后将一些文件推送到该目录(如果存在)。
到目前为止,我有这个:
adb %argument% shell if [ -e /sdcard/ ]; then echo "it does exist"; else echo "it does not exist"; fi;
但是如何让我的批处理脚本知道该目录存在,以便它可以继续将文件推送到该目录?
我需要能够测试并查看 Android 设备的 SD 卡上是否存在目录,然后将一些文件推送到该目录(如果存在)。
到目前为止,我有这个:
adb %argument% shell if [ -e /sdcard/ ]; then echo "it does exist"; else echo "it does not exist"; fi;
但是如何让我的批处理脚本知道该目录存在,以便它可以继续将文件推送到该目录?
这是我在批处理脚本中所做的:
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
)
可能有多个文件适合文件名,所以我选择让它测试大于 0。
要在 Linux 中测试完全匹配并使用 bash(参考):
FILENAME_RESULT=$(adb shell ls / | tr -d '\015'|grep '^fileName$')
if [ -z "$FILENAME_RESULT" ];
then
echo "No fileName found."
else
echo "fileName found."
fi
我认为您应该列出目录dir or ls
,然后使用 grep 进行分析。如果 grep 发现目录脚本做一些事情。
1)只需使用 adb shell ls /filepath > fileifpresent
2)如果“没有这样的文件或目录”存在,则在本地grep,然后NO
Else Directory Present
这是我将如何检查命令的退出状态的方法
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