命令提示错误"C:\ Program"未被识别为内部或外部命令,可运行程序或批处理文件

Roh*_*rma 37 command-line batch-file msp430 iar

我正在尝试运行以下批处理命令.该命令已从IDE中提取,因此已确认正在运行.得到下面提到的错误.

我用双引号尝试了一些变化,但它们没有用.即使在powershell上它也有相同的信息.

C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe F:\CP001\source\Meter\Main.c -D Hardware_P20E -D Calibration_code -D _Optical -D _Configuration_TS0382 -o F:\CP001\Temp\C20EO\Obj\ --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -D__MSP430F425 -e --double=32 --dlib_config C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\lib\dlib\dl430fn.h -Ol --multiplier=16 --segment __data16=DATA16 --segment __data20=DATA20
Run Code Online (Sandbox Code Playgroud)

命令提示符

更新:

尝试使用引号解决方案会以某种方式混淆编译器

在此输入图像描述

小智 43

如果目录中有空格,请在其周围加上引号.这包括您正在调用的程序,而不仅仅是参数

"C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe" "F:\CP001\source\Meter\Main.c" -D Hardware_P20E -D Calibration_code -D _Optical -D _Configuration_TS0382 -o "F:\CP001\Temp\C20EO\Obj\" --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -D__MSP430F425 -e --double=32 --dlib_config "C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\lib\dlib\dl430fn.h" -Ol --multiplier=16 --segment __data16=DATA16 --segment __data20=DATA20
Run Code Online (Sandbox Code Playgroud)

  • +1 yes以及带空格的参数必须引用(如--dlib_config的参数). (2认同)

小智 11

您只需要将程序文件保存为双引号,其余命令不需要任何引用.

C:\"Program Files"\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe F:\CP00 .....
Run Code Online (Sandbox Code Playgroud)

  • 坏习惯。“嵌入式工作台7.0”中的空格是什么? (3认同)

rjz*_*zii 11

这似乎不时发生在对命令行非常敏感的程序中,但一种选择是只使用DOS路径而不是Windows路径.这意味着C:\Program Files\将解决C:\PROGRA~1\并通常避免任何间距问题.

要获得短路径,您可以创建一个快速批处理文件,回显短路径:

@ECHO OFF
echo %~s1
Run Code Online (Sandbox Code Playgroud)

然后调用如下:

C:\>shortPath.bat "C:\Program Files"
C:\PROGRA~1
Run Code Online (Sandbox Code Playgroud)