我正在尝试运行以下批处理命令。该命令已从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
更新:
使用引号尝试解决方案会以某种方式混淆编译器
答案 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
路径。这对我来说很好。