Ошибка командной строки "C:\Program" не распознается как внутренняя или внешняя команда, операционная программа или командный файл
Я пытаюсь запустить следующую командную команду. Команда была извлечена из среды 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]()
Ответы
Ответ 1
Если в каталоге есть пробелы, поместите кавычки вокруг него. Сюда входит программа, которую вы вызываете, а не только аргументы
"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
Ответ 2
Вам просто нужно держать Program Files в двойных кавычках, а остальная часть команды не нуждается в кавычках.
C:\"Program Files"\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe F:\CP00 .....
Ответ 3
Кажется, это время от времени происходит с программами, которые очень чувствительны к командам, но один из них - просто использовать путь DOS вместо пути Windows. Это означает, что C:\Program Files\
будет разрешаться C:\PROGRA~1\
и вообще избегать любых проблем с интервалом.
Чтобы получить короткий путь, вы можете создать быстрый пакетный файл, который перекликается с коротким путем:
@ECHO OFF
echo %~s1
который затем вызывается следующим образом:
C:\>shortPath.bat "C:\Program Files"
C:\PROGRA~1
Ответ 4
Я столкнулся с подобной проблемой, используя командную строку Windows для сценария R, 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. Таким образом, использование ~
или "
для решения проблемы в командной строке является спорным. Исполняемый файл должен вызываться в пути без пробелов.
Ответ 5
Я считаю, что ответ Джеймса Ханта решит проблему.
@user3731784: В вашем новом сообщении компилятор, похоже, запутался из-за параметра "C:\Program Files\IAR systems\Embedded Workbench 7.0\430\lib\dlib\d1430fn.h". Почему вы даете этот заголовочный файл в середине других компиляторов?
Пожалуйста, исправьте это и повторите попытку.
Кроме того, вероятно, неплохо дать имя исходного файла после всех компиляторов, а не в начале.
Ответ 6
Перейдите в начало и выполните поиск cmd
. Щелкните правой кнопкой мыши по нему, затем свойства задайте путь Target
в кавычках. Это сработало для меня.