Android:adb.exe pull /mnt/sdcard/somefile.txt 不起作用?

13

也许是我做错了什么。我正在尝试使用adb命令从我的设备获取文件:

adb pull /mnt/sdcard/deviceinfo.dat C:\

但我总是收到这个消息:

cannot create 'c:\\deviceinfo.dat': No such file or directory

该文件存在于设备上:

adb shell ls /mnt/sdcard/deviceinfo.dat

返回值

/mnt/extsd/deviceinfo.dat

我尝试了一些变体:

adb pull /mnt/sdcard/deviceinfo.dat
adb pull /mnt/sdcard/deviceinfo.dat C:\
adb pull /mnt/sdcard/deviceinfo.dat C:\deviceinfo.dat

但我总是得到相同的错误。拉取时出了什么问题?我正在以管理员身份运行cmd.exe。


2
你尝试将文件放在某个文件夹中,而不是根目录下了吗? - Jin35
1
你尝试过 adb pull /mnt/extsd/deviceinfo.dat C:\ 吗? - user370305
是的,我已经尝试过了,就像我在问题中提到的那样。 - Seraphim's
我也尝试使用不同的目标目录(每个人都有写入权限),但什么也没有改变... - Seraphim's
5个回答

16

经过几个小时的煎熬后,我将回答自己的问题...

使用上下文菜单选项“以管理员身份运行”启动cmd.exe,但遗憾的是,由于某种原因,adb.exe无法写入本地文件,因此会出现错误:无法创建 'c:\\deviceinfo.dat' ...

现在是正确的步骤:

1 - Windows key (focus on search textbox)
2 - Type cmd.exe (it find cmd.exe obviously)
3 - CTRL+SHIFT+ENTER (to run as Administrator)
4 - adb shell ls /mnt/sdcard/deviceinfo.dat (works fine now!)

我不明白为什么在我的Win7工具栏上右键单击命令提示符图标后,使用上下文菜单中的“以管理员身份运行”选项不能按预期工作。


5

我通过在目标路径中创建一个文件夹来解决相同的问题。例如,adb pull /sdcard/a.txt D:\ 会出现错误。在D:\中创建一个临时文件夹,然后使用 adb pull /sdcard/a.txt D:\temp,一切都没问题了!这个问题发现在adb 1.0.36版本中。


1

确保文件/子文件夹中不含非法字符。在我的情况下,文件和文件夹的名称中有:


0

也有可能是文件已经存在于您想要拉取它的位置,并且正在使用或受到写保护,因此无法被覆盖。


-1

你需要检查每个传递的文件是否有效,例如:

--in your command cmd.

--cd c: press enter

--cd mnt press enter.

--cd sdcard press enter.

--deviceinfo.dat

然后你就能得到你想要的东西了。


我不确定你要我做什么...文件存储在设备中,而不是PC磁盘中。 - Seraphim's

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接