繁体   English   中英

命令CMD中的多个空格

[英]Multiple spaces in command CMD

好的,所以我尝试按照此排序指南将十六进制文件闪存到我的arduino pro micro上:

https://www.reddit.com/r/MechanicalKeyboards/comments/69woay/hand_built_keypad_gateron_blues_first_hand_wire/

我真的在第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中没有空格的空格?

如何在CMD中使用空格?

所以这就是我可能犯了一个小错误或很多大错误的问题,但是您的帮助将不胜感激。

让我们来看一个简单的例子。 您可能会尝试像这样运行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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM