2

我需要填写 SD 卡(0kb 作为可用空间),因此,我使用以下批处理复制 sd 卡上不同名称的文件“Maroon.file”(25mb)(Maroon_1.file、Maroon_2.file、. ..)

set counter=0
:COPYSMALLFILES
set /a counter=%counter% + 1
adb push Maroon.file /sdcard/Download/Maroon_%counter%.file | findstr /L "failed" |  findstr /C:"failed to" 
echo %errorlevel%
if %errorlevel%==1 (
    GOTO COPYSMALLFILES
) 

当 SD 卡没有更多内存来复制任何其他文件并adb push给出此消息“ failed to copy 'Maroon.file' to '/sdcard/Download/Maroon_4.file': No space left on device”时,我正在尝试使用findstr通过单词“ failed”搜索的命令来捕获该消息,我已经测试了该命令 ( findstr),并且工作正常,但与命令adb push它不起作用。有人有其他想法吗?

4

2 回答 2

1

即使您通过管道连接到 findstr,错误消息是否仍然显示?

如果是这样,那么错误可能被写入stderr (2) 流而不是stdout (1) 流。将此流重定向添加到您的命令。2>&1

adb push Maroon.file /sdcard/Download/Maroon_%counter%.file 2>&1 | findstr /L "failed" | findstr /C:"failed to"

于 2013-10-22T13:50:16.957 回答
0

我不确定我是否得到了你所需要的;grep 命令怎么样?

于 2013-10-22T13:38:18.820 回答