[英]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.