34

我在使用“xcopy”命令时遇到问题。

我正在使用 msbuild 构建一个 C# 项目。在构建结束时,会调用一个批处理文件将我的程序集从 Debug/Release 复制到其他一些文件夹。

这是问题所在,我的构建失败并且错误日志是“xcopy 未被识别为内部或外部命令、可运行程序或批处理文件”。

路径设置正确,xcopy 可以从 Windows 命令行和 Visual Studio 命令行(与项目环境一起设置的那一个)工作。

我试图在批处理文件中设置路径,但没有帮助。

有什么建议吗?

我正在使用 Windows 7

干杯:)

4

8 回答 8

44

我遇到了同样的问题。

Visual Studio 中的路径环境变量似乎有问题。

当我在构建事件的开头添加“路径”语句时,它产生了以下输出:

PATH=

这似乎表明路径在 VS 构建环境中是空的。

当我像这样指定 xcopy 的完整路径时,问题就消失了:

%systemroot%\System32\xcopy ...

我不确定是什么导致 Visual Studio 丢失了它的路径。

于 2013-07-16T14:23:10.093 回答
18

设置环境变量PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

于 2013-12-03T10:21:56.893 回答
12

这不是 Windows 7 或 8 的问题。它实际上是更新环境变量(如 PATH)的应用程序的问题。PATH 作为“可扩展字符串值”(REG_EXPAND_SZ) 存储在注册表中,但许多应用程序将其作为“字符串值”(REG_SZ) 写回注册表。如果您的路径包含类似 %SYSTEMROOT% 的任何内容,并且该路径存储在 REG_SZ 中,则不会将其扩展为 C:\Windows(或任何您的路径)。

解决方法是从控制面板手动编辑路径。您需要进行更改(例如添加一个 ; 到路径的末尾),然后应用它。这会将您在注册表中的路径修复为 REG_EXPAND_SZ。(转到系统控制面板并选择高级系统设置。编辑下框中的路径环境变量,这应该可以修复它。

您可以通过打开命令提示符并键入 PATH 来判断您的路径是否以这种方式损坏。您的路径将被列出。如果您可以看到包含在 % % 中的任何内容,则说明您的路径没有被扩展。

于 2014-01-16T10:54:06.127 回答
6

在我更新了我的一个 Visual Studio 扩展之后发生了这种情况,在此期间 Visual Studio 被更新程序关闭并重新打开。我无法再正确地构建我的项目。我关闭了 Visual Studio 并重新打开它,问题就消失了。

于 2013-12-30T19:28:08.963 回答
1

我刚刚使用批处理文件第一次体验到这一点,该批处理文件用于将 Access 前端应用程序复制到用户的本地计算机。他们的环境是 Windows 7 & 8 和 32-64 位机器的混合。我注意到 xcopy.exe 位于 System32 和 SysWOW64 文件夹中,我想知道是否存在冲突。所以 - 我将 xcopy.exe 复制到批处理文件所在的文件夹中,它现在似乎正在工作。只是想我会分享这个。

艾琳

于 2015-04-13T21:45:18.020 回答
0

我也遇到了 xcopy 的问题(同样的错误消息)——我用一个非常简单的批处理程序将文件备份到可移动驱动器。已使用该程序至少 5 年,从未出现过问题。然后昨天xcopy对Win7是未知的。在每个实例中用 %systemroot%\System32\xcopy 替换 xcopy 解决了这个问题。很奇怪。

于 2013-11-15T02:04:01.630 回答
0

转到环境变量并正确 PATH 包括;最后。它会起作用,这与操作系统或技术完全无关。它对我有用,甚至不需要重新启动操作系统,只需打开新的命令提示符。

于 2014-04-28T10:39:12.517 回答
0

[为我修复] 将正确的路径添加到“路径”环境变量后,它仍然不起作用(对于 cmd 和 VisualStudio)(即使在重新启动 PC 之后)。

问题在于注册参数损坏: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] ParameterName= PATHEXT

我有值 .wlua;.|exe。可能是安装后坏了。将其更改为: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 后一切正常

如果没有其他工作,希望这会有所帮助。

于 2019-01-25T10:25:19.267 回答