Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 命令提示错误';C:\Program';未被识别为内部或外部命令、可操作程序或批处理文件_Batch File_Command Line_Msp430_Iar - Fatal编程技术网

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

Batch file 命令提示错误';C:\Program';未被识别为内部或外部命令、可操作程序或批处理文件,batch-file,command-line,msp430,iar,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 _Config

我正在尝试运行以下批处理命令。该命令已从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

更新:

使用引号尝试解决方案会在某种程度上混淆编译器


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

"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

您只需要将程序文件保留在双引号中&命令的其余部分不需要任何引号

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

我相信詹姆斯·亨特的回答会解决这个问题

@user3731784:在您的新消息中,由于“C:\Program Files\IAR systems\Embedded Workbench 7.0\430\lib\dlib\d1430fn.h”参数,编译器似乎感到困惑。为什么在其他编译器开关的中间给出这个头文件? 请更正此问题,然后重试。
另外,在所有编译器切换之后而不是在开始时给出源文件名可能是一个好主意。

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

要获取短路径,您可以创建一个快速批处理文件,以响应短路径:

@ECHO OFF
echo %~s1
其名称如下:

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

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

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

以下操作失败:
“C:\Program Files\R\R-3.4.0\bin\Rscript.exe”

执行以下操作成功:

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

显然,上述建议的解决方案不起作用的原因与Rscript.exe可执行文件自身从其工作目录(其中有一个空格)的内部路径解析有关,而与windows命令行与空格混淆有关。所以使用
~
在命令行中解决问题是没有意义的。必须在没有空格的路径中调用可执行文件。

大多数情况下,问题在于您在.m2存储库中的settings.xml中提到的“java home”和“javac”标记的路径,而不是路径变量或java_home变量。 如果您检查并纠正了相同的错误,您应该能够成功地执行命令。
-Jaihind

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

例如:


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

只需转到文件夹路径并键入cmd即可。然后按回车键

您需要将命令置于双引号中
,否则命令提示符会认为
C:\Program
是要运行的程序,其余的都是它的参数。即使双引号无效+1 yes,也必须引用带空格的参数(如--dlib_config的参数)。我尝试了你的解决方案。这让编译器莫名其妙地感到困惑。我发布了上面的新消息。糟糕的做法。
Embedded Workbench 7.0
中的空格是什么?@dheerajS我确实尝试过。遗憾的是,这是我在尝试在npm的package中创建命令时唯一有效的方法。用于脚本的json双引号完整路径不起作用对我来说。我正在使用MSSQL执行一个命令,EXEC xp\u cmdshell'C:\“Program Files”\7-Zip\7z.exe a“C:…..该命令已从原始IDE中获取。必须使用其中的所有开关。不能忽视任何事情。唯一的问题是-O开关,因为它后面没有空格。Rest工作我尝试将路径变量设置为使用
%ProgramFiles(x86)%
,但运气不好,因为我猜它仍然解析为带有空格的路径-但是您的解决方案成功了,最后使用了“PROGRA~2”,非常感谢