xcopy 不是内部或外部命令、可运行程序或批处理文件
Posted
技术标签:
【中文标题】xcopy 不是内部或外部命令、可运行程序或批处理文件【英文标题】:xcopy is not recognized as an internal or external command, operable program or batch file 【发布时间】:2013-06-20 20:08:06 【问题描述】:我在使用“xcopy”命令时遇到问题。
我正在使用 msbuild 构建一个 C# 项目。在构建结束时,会调用一个批处理文件将我的程序集从 Debug/Release 复制到其他一些文件夹。
这就是问题所在,我的构建失败并且错误日志是“xcopy 未被识别为内部或外部命令、可运行程序或批处理文件”。
路径设置正确,xcopy 可以从 Windows 命令行和 Visual Studio 命令行(与项目环境一起设置)运行。
我尝试在批处理文件中设置路径,但没有帮助。
有什么建议吗?
我使用的是 Windows 7
干杯:)
【问题讨论】:
【参考方案1】:我遇到了同样的问题。
Visual Studio 中的路径环境变量似乎有问题。
当我在构建事件的开头添加“路径”语句时,它产生了以下输出:
PATH=
这似乎表明路径在 VS 构建环境中为空。
当我像这样指定 xcopy 的完整路径时,问题就消失了:
%systemroot%\System32\xcopy ...
我不确定是什么导致 Visual Studio 丢失它的路径。
【讨论】:
【参考方案2】:设置环境变量PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
【讨论】:
【参考方案3】:这不是 Windows 7 或 8 的问题。它实际上是更新环境变量(如 PATH)的应用程序的问题。 PATH 作为“可扩展字符串值”(REG_EXPAND_SZ)存储在注册表中,但许多应用程序将其作为“字符串值”(REG_SZ)写回注册表。如果您的路径包含 %SYSTEMROOT% 之类的内容,并且该路径存储在 REG_SZ 中,则不会将其扩展为 C:\Windows(或您的路径)。
解决方法是从控制面板手动编辑您的路径。您需要进行更改(例如添加一个 ; 到路径的末尾),然后应用它。这会将您在注册表中的路径修复为 REG_EXPAND_SZ。 (转到系统控制面板并选择高级系统设置。编辑下框中的路径环境变量,这应该可以修复它。
您可以通过打开命令提示符并输入 PATH 来判断您的路径是否以这种方式损坏。您的路径将被列出。如果您可以看到任何包含在 % % 中的内容,则说明您的路径没有被扩展。
【讨论】:
看准菲尔!在我的情况下,这是在 Windows XP 上,并且注册表中的条目 (HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path) 确实已设置为 REG_SZ。从控制面板>系统>高级>环境变量重新建立路径在注册表中更正了它。当我启动一个新的命令提示符时,路径已正确“扩展”。 很高兴我找到了这个答案!这正是我机器上的问题。【参考方案4】:我更新了我的一个 Visual Studio 扩展后发生了这种情况,在此期间 Visual Studio 被更新程序关闭并重新打开。我无法再正确地构建我的项目。我关闭了 Visual Studio 并重新打开它,问题就消失了。
【讨论】:
这里也一样。关闭VS再打开就解决了问题。【参考方案5】:我第一次使用批处理文件体验到这一点,我使用该批处理文件将 Access 前端应用程序复制到用户的本地计算机。他们的环境是 Windows 7 & 8 和 32-64 位机器的混合。我注意到 xcopy.exe 位于 System32 和 SysWOW64 文件夹中,我想知道是否存在冲突。所以 - 我将 xcopy.exe 复制到批处理文件所在的文件夹中,它现在似乎正在工作。只是想我会分享这个。
艾琳
【讨论】:
【参考方案6】:我也遇到了 xcopy 的问题(同样的错误消息)——我用一个非常简单的批处理程序将文件备份到可移动驱动器。已使用该程序至少 5 年,从未出现过问题。然后昨天xcopy对Win7是未知的。在每个实例中用 %systemroot%\System32\xcopy 替换 xcopy 解决了这个问题。很奇怪。
【讨论】:
【参考方案7】:转到环境变量并更正 PATH,包括最后的 ;
。
它会起作用,这与操作系统或技术完全无关。
它对我有用,甚至不需要重新启动操作系统,只需打开新的命令提示符即可。
【讨论】:
【参考方案8】:[为我修复] 将正确的路径添加到“Path”环境变量后,它仍然不起作用(对于 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
如果没有其他方法,希望这会有所帮助。
【讨论】:
以上是关于xcopy 不是内部或外部命令、可运行程序或批处理文件的主要内容,如果未能解决你的问题,请参考以下文章
nodemon ''mocha' 不是内部或外部命令、可运行程序或批处理文件
命令提示错误“C:\Program”不是内部或外部命令、可运行程序或批处理文件
'gradlew' 不是内部或外部命令,也不是可运行的程序 或批处理文件。