2014-07-23 19 views
28

Tôi đang cố gắng chạy lệnh lô sau. Lệnh này đã được trích xuất từ ​​IDE để được xác nhận làm việc. Nhận lỗi được đề cập bên dưới.Lỗi nhắc lệnh 'C: Program' không được nhận dạng dưới dạng lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp lô

Tôi đã thử một vài biến thể với dấu ngoặc kép nhưng chúng chưa hoạt động. Ngay cả trên powerhell nó có cùng một thông điệp.

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

Cập nhật:

Cố gắng giải pháp với dấu ngoặc kép confuses trình biên dịch trong một số cách

enter image description here

+3

Bạn cần đặt lệnh trong dấu ngoặc kép '" 'hoặc lời nhắc lệnh sẽ nghĩ rằng' C: \ Program' là chương trình để chạy và phần còn lại là đối số cho nó. –

+1

Thậm chí dấu ngoặc kép không hoạt động –

Trả lời

34

Nếu một thư mục có khoảng trống trong, đặt dấu ngoặc kép xung quanh nó. Điều này bao gồm chương trình bạn đang gọi, không chỉ các đối số

"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

+ 1 có và cũng có các tham số với dấu cách phải được trích dẫn (như đối số cho --dlib_config) –

+0

Tôi đã thử các giải pháp của bạn, nó đã gây nhầm lẫn cho trình biên dịch bằng cách nào đó, tôi đã đăng thông báo mới ở trên –

4

Bạn chỉ cần giữ lại Tệp chương trình trong ngoặc kép & phần còn lại của lệnh không cần báo giá.

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

+1

. Workbench 7.0'? – Stephan

+0

@dheerajS Tôi đã thử rằng –

+0

Đáng buồn thay, đây là thứ duy nhất làm việc cho tôi khi cố tạo các lệnh trong gói npm.json cho các script –

-1

Tôi tin rằng câu trả lời James Hunt sẽ giải quyết vấn đề.

@ user3731784: Trong thư mới của bạn, trình biên dịch có vẻ bị nhầm lẫn vì đối số "C: \ Program Files \ IAR systems \ Embedded Workbench 7.0 \ 430 \ lib \ dlib \ d1430fn.h". Tại sao bạn cho tệp tiêu đề này ở giữa các trình chuyển đổi trình biên dịch khác? Vui lòng sửa lỗi này và thử lại. Ngoài ra, nó có thể là một ý tưởng tốt để cung cấp cho tên tập tin nguồn sau khi tất cả các trình biên dịch chuyển mạch và không phải lúc đầu.

+0

Lệnh đã được chọn từ IDE gốc. Tất cả các công tắc trong nó phải được sử dụng. Không thể bỏ qua bất cứ điều gì. Chỉ có vấn đề là -O chuyển đổi bởi vì nó không có một không gian sau đó. Phần còn lại hoạt động –

7

Điều này dường như xảy ra theo thời gian với các chương trình rất nhạy cảm với dòng lệnh, nhưng một tùy chọn là chỉ sử dụng đường dẫn DOS thay vì đường dẫn Windows. Điều này có nghĩa là C:\Program Files\ sẽ giải quyết thành C:\PROGRA~1\ và thường tránh mọi sự cố với khoảng trắng.

Để có được con đường ngắn, bạn có thể tạo một file hàng loạt nhanh chóng mà Echos con đường ngắn:

@ECHO OFF 
echo %~s1 

mà sau đó được gọi như sau:

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

Tôi đã thử đặt biến PATH của mình để sử dụng '% ProgramFiles (x86)%' không may mắn vì tôi đoán nó đã giải quyết được đường dẫn với dấu cách - nhưng giải pháp của bạn đã hoạt động, kết thúc bằng cách sử dụng "PROGRA ~ 2", cảm ơn bạn rất nhiều – joshcomley

-2

Vào Start và tìm kiếm cmd . Nhấp chuột phải vào nó, thuộc tính sau đó đặt đường dẫn Target trong dấu ngoặc kép. Điều này làm việc tốt cho tôi.

Các vấn đề liên quan

 Các vấn đề liên quan