判断是否有sdcard

 

判断是否有sdcard插入:

 

public boolean avaiableMedia(){
    	String status=Environment.getExternalStorageState();
    	
    	if(status.equals(Environment.MEDIA_MOUNTED)){
    		return true;
    	}
    	else {
    		return false;
    	}
    }

 

 

true: 有

false: 无

<think>嗯,用户想要用ADB写一个BAT脚本来判断sdcard/cit_config.xml是否存在。首先,我得回忆一下ADB命令中如何检查文件存在。记得ADB shell里可以用test命令,比如用-f参数检查文件是否存在。然后通过echo $?来获取上一条命令的退出状态。如果返回0表示存在,非0则不存在。 接下来要考虑如何在BAT脚本中处理这些命令。BAT脚本里需要用adb shell执行这些命令,然后获取结果。可能需要将adb shell的多个命令用引号括起来,用分号隔开。比如adb shell "test -f /sdcard/cit_config.xml; echo $?"。这样执行后,BAT脚本可以得到输出结果0或者1。 然后,如何在BAT中捕获这个输出呢?使用for /f循环来获取命令的输出结果。比如for /f "delims=" %%a in ('adb shell "test -f /sdcard/cit_config.xml; echo $?"') do set result=%%a。这里要注意,ADB shell返回的结果可能会有回车符或者其他特殊字符,可能需要用tr -d '\r'来清理,确保结果正确。 另外,需要注意路径是否正确。sdcard的路径可能有不同的情况,比如有的设备是/sdcard/,有的可能是/storage/emulated/0/之类的。可能需要用户确认路径是否正确,或者先用adb shell ls检查一下。 还有权限问题,确保ADB有权限访问该文件。如果设备没有root权限,可能无法访问某些目录,但/sdcard/一般是可访问的。 然后,根据获取的结果,用条件判断语句if "%result%"=="0"来执行不同的操作,比如输出存在或不存在的信息。 可能需要处理设备连接问题,比如先执行adb devices确保设备已连接,否则脚本会失败。不过用户可能只需要基础功能,暂时不处理多设备的情况。 最后,测试脚本的时候,可能需要用真实设备或模拟器验证,确保逻辑正确。同时提醒用户替换可能的路径差异,比如内部存储和外部SD的区别。</think>以下是为您编写的BAT脚本解决方案,使用ADB检测SD文件是否存在: ```bat @echo off REM 执行ADB命令检测文件存在性 for /f "delims=" %%a in ('adb shell "test -f /sdcard/cit_config.xml && echo 0 || echo 1"') do set result=%%a REM 清理特殊字符(处理ADB返回的换行符) set result=%result: =% set result=%result:1=1% set result=%result:0=0% REM 判断结果 if "%result%"=="0" ( echo 文件存在 /sdcard/cit_config.xml ) else ( echo 文件不存在 /sdcard/cit_config.xml ) pause ``` 代码说明分步解析: 1. **ADB命令执行层** `test -f` 是Linux文件检测命令,`&&`和`||`是逻辑运算符: - 文件存在时返回0 - 文件不存在时返回1 通过`adb shell`远程执行该命令 2. **Windows批处理层** - `for /f`循环捕获ADB命令输出 - 变量替换`set result=%result: =%`用于清除ADB返回的换行符 - 最终通过`if`条件判断输出结果 3. **特殊处理注意事项** - 设备连接验证:建议脚本前添加`adb devices`验证设备连接 - 路径差异:部分设备可能需要使用`/storage/emulated/0/`代替`/sdcard/` - 权限问题:确保ADB有存储权限(Android 11+需要特别处理) 扩展建议: 1. 如需自动化操作,可在判断存在后添加文件操作: ```bat if "%result%"=="0" ( adb pull /sdcard/cit_config.xml . echo 文件已复制到电脑 ) ``` 2. 添加错误重试机制: ```bat :retry adb kill-server adb start-server rem 重新执行检测... ``` 请根据实际设备情况调整SD路径,测试时建议先手动执行`adb shell ls /sdcard/`确认文件路径正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值