2013-06-24 48 views
26

我使用'xcopy'命令時出現問題。xcopy不被識別爲內部或外部命令,可操作程序或批處理文件

我正在用msbuild構建一個C#項目。在構建結束時,調用批處理文件將我的程序集從調試/發佈複製到其他文件夾。

這是問題,我的構建失敗,錯誤日誌是'xcopy不被識別爲內部或外部命令,可操作程序或批處理文件'。

正確設置了路徑,xcopy可以從Windows命令行和Visual Studio命令行(與項目環境一起設置的那個)運行。

我試圖在批處理文件中設置路徑,但它沒有幫助。

有什麼建議嗎?

我使用Windows 7

乾杯:)

回答

36

我遇到同樣的問題。

它似乎是Visual Studio中的路徑環境變量的問題。

當我增加了一個「路徑」語句來我生成事件的開始,它產生了以下的輸出:

PATH= 

這似乎表明路徑是VS空之內構建環境。

當我指定的完整路徑XCOPY這樣,問題消失:

%systemroot%\System32\xcopy ... 

我不知道是什麼原因造成的Visual Studio失去它的路徑。

0

我也有一個xcopy的問題(​​同樣的錯誤信息) - 我用一個非常簡單的批處理程序來備份文件到可移動驅動器。已經使用該程序至少5年,從來沒有問題。那麼昨天xcopy對於Win7是未知的。在每個實例處用%systemroot%\ System32 \ xcopy替換xcopy解決了問題。很奇怪。

10

設置環境變量PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

6

它發生在我身上我更新了我的Visual Studio擴展,在此期間,Visual Studio中被更新關閉並重新打開之一後。我無法再正確地構建我的項目。我關閉了Visual Studio並重新打開它,問題就消失了。

+0

同樣在這裏。關閉VS並再次打開它解決了這個問題。 –

5

這不是Windows 7或8的問題。它實際上是更新環境變量(如PATH)的應用程序的問題。 PATH作爲「可擴展字符串值」(REG_EXPAND_SZ)存儲在註冊表中,但許多應用程序將其作爲「字符串值」(REG_SZ)寫回註冊表。如果路徑中包含類似%SYSTEMROOT%的內容,那麼如果路徑在REG_SZ中播放,則不會將其展開到C:\ Windows(或其他任何內容)。

該修復只是簡單地從控制面板手動編輯您的路徑。您需要進行更改(例如,將路徑添加到路徑末尾),然後應用它。這將修復您在註冊表中的路徑爲REG_EXPAND_SZ。 (轉到系統控制面板並選擇高級系統設置,在下面的框中編輯路徑環境變量,並且應該修復它。

您可以通過打開命令提示符來判斷您的路徑是否被破壞鍵入PATH。您的路徑將被列出。如果你能看到什麼封閉在%%,那麼你的路徑沒有被擴大。

+0

菲爾現貨!在我的情況下,這是在Windows XP上,並且註冊表中的條目(HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ Session Manager \ Environment \ Path)確實已設置爲REG_SZ。從「控制面板」>「系統」>「高級」>「環境變量」中重新建立路徑已在註冊表中更正了它。當我開始一個新的命令提示符時,路徑被正確地「擴展」。 – prairiehat

-2

轉到環境變量和正確的路徑,包括在最後;。 它會工作,這是根本不涉及操作系統或技術 它適用於我,甚至不需要重新啓動操作系統,只需打開新的命令提示符。

1

我剛剛第一次遇到這個問題,我用它將一個Access前端應用程序複製到用戶的本地機器上。他們的環境是Windows 7和32-64位機器的組合。我注意到xcopy.exe既在System32也在SysWOW64文件夾中,我想知道是否有一些衝突。所以 - 我將xcopy.exe複製到批處理文件所在的文件夾中,現在它似乎正在工作。只是想我會分享這一點。

艾琳

相關問題