[英]Multiple spaces in command CMD
好的,所以我尝试按照此排序指南将十六进制文件闪存到我的arduino pro micro上:
我真的在第2步中挣扎。我遇到的问题是我的东西(不确定该怎么称呼)看起来像这样:
""C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" "-CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega32u4 -cavr109 -PCOM5 -b57600 -D -Uflash:wC:"\Users\My Name\Desktop\Layout\layout.hex:i""
我收到此错误:
'""C:\Program' is not recognized as an internal or external command,
可操作的程序或批处理文件。
我根据以下建议尝试使用语音标记修复该问题:
对于不能处理文件路径中的空格的程序,如何指定C:\\ Program Files中没有空格的空格?
所以这就是我可能犯了一个小错误或很多大错误的问题,但是您的帮助将不胜感激。
让我们来看一个简单的例子。 您可能会尝试像这样运行C:\\Program Files (x86)\\myapp\\myprogram
:
C:\Program Files (x86)\myapp\myprogram --parameter:value
这是行不通的,因为CMD要做的第一件事是在空格上拆分。 这称为* tokenisation`,结果是令牌列表:
C:\\Program
Files
(x86)\\myapp\\myprogram
--parameter:value
然后,它使用第一个令牌C:\\Program
并尝试查找具有该名称的文件。
'C:\Program' is not recognized as an internal or external command
标记化例程要注意引号。 当遇到引号时,它会删除它,然后在遇到下一个引号之前,它不会将空格视为标记分隔符。
所以:
"C:\Program Files (x86)\myapp\myprogram" --parameter:value
标记为:
C:\\Program Files (x86)\\myapp\\myprogram
--parameter:value
由于您的示例中的某些原因,您在整个内容中使用了更多的引号:
""C:\Program Files (x86)\myapp\myprogram" --parameter:value"
令牌化将双精度字符"
当作文字""
对待,因此现在将其令牌化为:
""C:\\Program Files
(x86)\\myapp\\myprogram
--parameter:value
因为没有可执行文件""C:\\Program Files
所以会出现错误。
了解报价和令牌化的工作方式。 理解命令而不是盲目地复制它们,您应该能够解决此问题。
让我们分析一下你的弦
""C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" "-CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega32u4 -cavr109 -PCOM5 -b57600 -D -Uflash:wC:"\Users\My Name\Desktop\Layout\layout.hex:i""
您的双引号“”立即出现问题。 这被解释为这两个引号之间的空字符串。 因此,使您的C:\\ Program Files结尾于引号。
试试这个
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" "-CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega32u4 -cavr109 -PCOM5 -b57600 -D -Uflash:wC:"\Users\My Name\Desktop\Layout\layout.hex:i"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.