2013-06-24 20 views
26

Tôi gặp sự cố khi sử dụng lệnh 'xcopy'.xcopy 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 đang xây dựng dự án C# với msbuild. Vào cuối của xây dựng, một tập tin thực thi được gọi là để sao chép hội đồng của tôi từ Debug/Release cho một số thư mục khác.

Đây là sự cố, lỗi xây dựng của tôi và nhật ký lỗi là 'xcopy 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 hàng loạt'.

Đường dẫn được đặt chính xác, xcopy hoạt động từ dòng lệnh của cửa sổ và từ dòng lệnh của studio trực quan (bộ được thiết lập với môi trường dự án).

Tôi đã cố gắng đặt đường dẫn trong tệp lô nhưng không giúp được.

Bất kỳ đề xuất nào?

Tôi đang sử dụng windows 7

Cheers :)

Trả lời

36

tôi gặp phải cùng một vấn đề.

Dường như có vấn đề với biến môi trường đường dẫn trong Visual Studio.

Khi tôi thêm một "con đường" tuyên bố vào đầu của sự kiện xây dựng của tôi, nó được sản xuất đầu ra sau đây:

PATH= 

này dường như chỉ ra rằng con đường trống trong VS xây dựng môi trường.

Khi tôi chỉ định đường dẫn đầy đủ để xcopy như thế này, vấn đề đi đi:

%systemroot%\System32\xcopy ... 

Tôi không chắc chắn những gì gây ra Visual Studio để mất nó con đường.

0

Tôi cũng gặp sự cố với xcopy (cùng một thông báo lỗi) - với một chương trình hàng loạt rất đơn giản mà tôi sử dụng để sao lưu tệp vào ổ đĩa di động. Đã sử dụng chương trình đó trong ít nhất 5 năm mà không bao giờ là vấn đề. Sau đó, ngày hôm qua xcopy là không biết đến Win7. Việc thay thế xcopy bằng% systemroot% \ System32 \ xcopy tại mỗi cá thể đã giải quyết được vấn đề. Rất lạ.

10

biến Set Môi trường PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

6

Nó xảy ra với tôi sau khi tôi cập nhật một phần mở rộng của Visual Studio của tôi, trong thời gian đó Visual Studio đã được đóng cửa và mở cửa trở lại bởi updater. Tôi không còn có thể xây dựng dự án của mình đúng cách nữa. Tôi đóng Visual Studio và mở lại nó và vấn đề đã biến mất.

+0

Tương tự tại đây. Đóng VS và mở lại nó đã giải quyết được vấn đề. –

5

Đây không phải là vấn đề với Windows 7 hoặc 8. Đây thực sự là vấn đề với các ứng dụng cập nhật biến môi trường như PATH. PATH được lưu trữ trong Registry như là một "giá trị chuỗi mở rộng" (REG_EXPAND_SZ), nhưng rất nhiều ứng dụng ghi nó trở lại Registry như là một "String Value" (REG_SZ). Nếu đường dẫn của bạn có chứa bất cứ thứ gì như% SYSTEMROOT%, điều này sẽ không được mở rộng vào C: \ Windows (hoặc bất cứ điều gì bạn là) nếu đường dẫn được sotred trong một REG_SZ.

Sửa chữa chỉ đơn giản là chỉnh sửa đường dẫn của bạn theo cách thủ công từ bảng điều khiển. Bạn cần phải thực hiện một thay đổi (ví dụ: thêm một; vào cuối đường dẫn) và sau đó áp dụng nó. Điều này sẽ sửa chữa đường dẫn của bạn trong Registry để trở thành REG_EXPAND_SZ. (Chuyển đến Bảng Điều khiển Hệ thống và chọn Cài đặt Hệ thống Nâng cao. Chỉnh sửa biến Môi trường Đường dẫn trong hộp bên dưới và sửa lỗi đó.

Bạn có thể biết đường dẫn của mình có bị hỏng theo cách này hay không bằng cách mở dấu nhắc lệnh và gõ PATH Đường dẫn của bạn sẽ được liệt kê Nếu bạn có thể thấy bất kỳ thứ gì được đính kèm trong%% thì đường dẫn của bạn sẽ không được mở rộng.

+0

Spot on Phil! Trong trường hợp của tôi, đây là trên Windows XP và mục nhập trong sổ đăng ký (HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Session Manager \ Environment \ Path) thực sự đã được đặt thành REG_SZ. Tái thiết lập đường dẫn từ Bảng điều khiển> Hệ thống> Nâng cao> Biến môi trường đã sửa nó trong sổ đăng ký. Khi tôi bắt đầu một dấu nhắc lệnh mới, đường dẫn đã được "mở rộng" đúng cách. – prairiehat

-2

Chuyển đến biến môi trường và PATh chính xác, bao gồm ; trong lần cuối Nó sẽ hoạt động, đây là Nó làm việc cho tôi, thậm chí không cần phải khởi động lại hệ điều hành, chỉ cần mở dấu nhắc lệnh mới

1

Tôi chỉ mới trải nghiệm điều này lần đầu tiên với một tập tin batch tôi sử dụng để sao chép một ứng dụng Access front-end đến các máy cục bộ của người dùng. Môi trường của họ là sự kết hợp của các máy Windows 7 & 8 và 32-64 bit. Tôi nhận thấy rằng xcopy.exe đã được cả trong các thư mục System32 và SysWOW64 và tôi tự hỏi nếu có một số xung đột. Vì vậy, tôi đã sao chép xcopy.exe vào thư mục chứa tập tin batch và bây giờ nó có vẻ đang hoạt động. Chỉ nghĩ rằng tôi muốn chia sẻ điều này.

Eileen

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