命令提示错误' C:\ Program'不被识别为内部或外部命令,可操作程序或批处理文件

时间:2014-07-23 08:03:21

标签: batch-file command-line 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

Command Prompt

更新:

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

enter image description here

9 个答案:

答案 0 :(得分:42)

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

"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

答案 1 :(得分:8)

你只需要将程序文件保存在双引号和&其余的命令不需要任何引用。

C:\"Program Files"\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe F:\CP00 .....

答案 2 :(得分:8)

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

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

@ECHO OFF
echo %~s1

然后调用如下:

C:\>shortPath.bat "C:\Program Files"
C:\PROGRA~1

答案 3 :(得分:0)

我在R脚本Rscript.exe的Windows命令行中遇到了类似的问题,该脚本对路径中的空格非常敏感。解决方案是使用Windows accord.targets命令创建指向二进制文件夹的虚拟路径。

以下操作失败:subst

以下操作成功:

"C:\Program Files\R\R-3.4.0\bin\Rscript.exe"

上述解决方案不起作用的原因显然与Rscript.exe可执行文件在其工作目录(其中具有空格)中自身的内部路径解析有关,而不是Windows命令行与空间。因此,在命令行上使用subst Z: "C:\Program Files\R\R-3.4.0" Z:\bin\Rscript.exe ~解决问题是没有意义的。必须在缺少空格的路径内调用可执行文件。

答案 4 :(得分:0)

在大多数情况下,问题出在.m2存储库中存在的settings.xml中为“ java home”和“ javac”标记提到的路径,问题不在于路径变量或Java_Home变量。 如果您检查并更正它们,则应该能够成功执行命令。 -Jaihind

答案 5 :(得分:0)

尝试将cd放在文件路径之前

示例:

C:\ Users \ user> cd C:\ Program Files \ MongoDB \ Server \ 4.4 \ bin

答案 6 :(得分:0)

只需转到文件夹路径并在其上键入 cmd 即可。然后按 ENTER enter image description here

答案 7 :(得分:-1)

我相信詹姆斯亨特的答案将解决问题。

@ user3731784:在你的新消息中,由于" C:\ Program Files \ IAR systems \ Embedded Workbench 7.0 \ 430 \ lib \ dlib \ d1430fn.h"编译器似乎很困惑。论点。为什么要在其他编译器开关的中间提供此头文件? 请更正此问题并重试。 此外,在所有编译器开关之后而不是在开头提供源文件名可能是个好主意。

答案 8 :(得分:-2)

转到“开始”并搜索cmd。右键单击它,属性然后在引号中设置Target路径。这对我来说很好。