我如何在Windows命令行中转义空格?

3

我想从Windows cmd启动支持SD卡的Android模拟器。

我尝试过:

emulator -sdcard C:/Documents and Settings/User/sdcard.img -avd avd_tablet

它无法正常工作:命令行参数无效:and

emulator -sdcard C:/Documents^ and^ Settings/User/sdcard.img -avd avd_tablet

使用“^”无法正常工作:无效的命令行参数:and^

emulator -sdcard "C:/Documents and Settings/User/sdcard.img" -avd avd_tablet

双引号使用时出现问题:命令行参数无效:and

emulator -sdcard C:/Documents\ and\ Settings/User/sdcard.img -avd avd_tablet

当使用反斜杠转义符时出现问题:无效的命令行参数: and

emulator -sdcard C:/"Documents and Settings"/User/sdcard.img -avd avd_tablet

无法使用部分反斜杠转义: 无效的命令行参数: and

有任何建议吗?

2个回答

3
Google所述,您必须指定SD卡映像的相对路径。
如果您的SDK安装在C:\ Documents and Settings \ User \ Android SDK ,请按以下方式启动模拟器:
emulator -sdcard "..\..\..\sdcard.img" -avd avd_tablet

2
emulator -sdcard "C:\Documents and Settings\User\sdcard.img" -avd avd_tablet

应该可以工作。如果不能,那么您使用的程序可能存在问题,您可能需要查找如何传递带有空格的路径。Windows命令行(不像Unix shell)不会解析命令参数;程序只会得到一个完整命令行的字符串,并且必须自己解决问题。


2
如果程序出现故障,像 C:\DOCUME~1\… 这样的东西可能会起作用。 - mirabilos
我不知道这是否是一个笔误,但 @Salvatore 使用了正斜线 / 而不是反斜线 \ - Rik
1
不用担心。Windows API会自动将斜杠转换为反斜杠以便处理路径。唯一需要注意的是cmd内置命令使用/作为选项,有时会对斜杠路径感到困惑。 - Joey
@Joey:我认为你是对的。Android模拟器的“-sdcard”参数不接受空格。我想我必须使用相对路径或“DOCUME〜1”符号。感谢大家。 - Salvatore
1
从技术上讲,Mikael 是正确的,因为文档明确指出:“可选地,您可以指定相对于当前工作目录的路径。” 因此,绝对路径根本不受支持。 - Joey
实际上,绝对路径适用于“没有空格的路径”。而且相对路径不适用于“带有空格的路径”:“....\a folder\sdcard.img”。所以我认为这是谷歌的问题。 - Salvatore

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