使用'xcopy'命令时遇到问题。
我正在用msbuild构建一个C#项目。在构建结束时,调用批处理文件将我的程序集从Debug / Release复制到其他一些文件夹。
问题是,我的构建失败,错误日志是'xcopy无法识别为内部或外部命令,可运行程序或批处理文件'。
路径设置正确,xcopy可以从Windows命令行和visual studio命令行(使用项目环境设置的命令行)工作。
我尝试在批处理文件中设置路径,但它没有帮助。
有什么建议吗?
我正在使用Windows 7
干杯:)
答案 0 :(得分:40)
我遇到了同样的问题。
Visual Studio中的路径环境变量似乎存在问题。
当我添加"路径"声明到我的构建事件的开头,它产生了以下输出:
PATH=
这似乎表明VS构建环境中的路径是空的。
当我像这样指定xcopy的完整路径时,问题就消失了:
%systemroot%\System32\xcopy ...
我不确定是什么原因导致Visual Studio丢失它的路径。
答案 1 :(得分:14)
设置环境变量PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
答案 2 :(得分:6)
在我更新了我的一个Visual Studio扩展之后发生了这件事,在此期间Visual Studio被更新程序关闭并重新打开。我再也无法正确构建我的项目了。我关闭了Visual Studio并重新打开它,问题就消失了。
答案 3 :(得分:6)
这不是Windows 7或8的问题。实际上,更新环境变量(如PATH)的应用程序存在问题。 PATH作为“可扩展字符串值”(REG_EXPAND_SZ)存储在注册表中,但许多应用程序将其作为“字符串值”(REG_SZ)写回注册表。如果您的路径包含%SYSTEMROOT%之类的内容,则如果路径在REG_SZ中进行了备份,则不会将其扩展为C:\ Windows(或其他任何内容)。
修复只是从控制面板手动编辑路径。您需要进行更改(例如,添加;到路径的末尾),然后应用它。这将修复您在注册表中的路径为REG_EXPAND_SZ。 (转到“系统控制面板”并选择“高级系统设置”。在下方框中编辑“路径环境”变量,这应该可以修复它。
通过打开命令提示符并键入PATH,可以通过这种方式判断路径是否已损坏。您的路径将被列出。如果您可以看到%%中包含的任何内容,那么您的路径不会被展开。
答案 4 :(得分:1)
我刚刚第一次使用批处理文件来体验这一点,我用它来将Access前端应用程序复制到用户的本地计算机上。他们的环境是Windows 7和Windows 7的混合体。 8和32-64位机器。我注意到xcopy.exe都在System32和SysWOW64文件夹中,我想知道是否存在一些冲突。所以 - 我将xcopy.exe复制到批处理文件所在的文件夹中,现在它似乎正在工作。我以为我会分享这个。
艾琳
答案 5 :(得分:0)
我也遇到了xcopy问题(相同的错误信息) - 我用一个非常简单的批处理程序将文件备份到可移动驱动器。一直使用该程序至少5年,从来没有问题。然后昨天xcopy不知道Win7。在每个实例上用%systemroot%\ System32 \ xcopy替换xcopy解决了这个问题。很奇怪。
答案 6 :(得分: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
希望这对没有其他帮助的人有帮助。
答案 7 :(得分:-2)
转到环境变量并在最后修正包含;
的PATh。
它会起作用,这与操作系统或技术完全无关。
它为我工作,甚至不需要重启OS,只需打开新的命令提示符。