我很难过。突然之间,Visual Studio无法在Windows / System32目录中找到exe文件(例如 xcopy , attrib 等)。
我有一些预构建和后构建事件,它们执行使用xcopy和attrib的批处理文件。以前它们工作正常,但今天,在构建过程中,Visual Studio找不到它们。显示错误:'xcopy'未被识别为内部或外部命令,可操作程序或批处理文件。
当我第一次发现问题时,我尝试在常规cmd提示符下运行xcopy,并出现同样的问题。重新启动计算机后,问题在常规cmd提示符中消失,但仍保留在Visual Studio中。重新启动后,Visual Studio cmd提示中也不会出现此问题 - 仅在Visual Studio本身内。
如果在其中一个批处理文件中执行 set 以检查PATH变量或 echo%systemroot%,则一切正常。
在“工具” - >“选项”菜单中,有VisualC ++目录的设置。但是,我正在运行C#,而不是C ++,此外,我从未更改过这些设置,看起来它们是正确的。
以前有人遇到过这个问题吗?想法?
答案 0 :(得分:4)
我在尝试使用Visual Studio构建时遇到了同样的问题。
尝试手动运行XCOPY并且失败并显示消息“xcopy”未被识别为内部或外部命令,可运行程序或批处理文件“
所以我尝试手动导航到C:\ WINDOWS \ SYSTEM32并执行XCOPY。它奏效了!
解决方案:
导航到控制面板 - >系统 - >高级系统设置 - >环境变量
首次安装Windows时,该变量为: %SYSTEMROOT%\ SYSTEM32;%SYSTEMROOT%;%SYSTEMROOT%\ System32下\ WBEM
将这些放在 PATH 变量的开头,然后单击“确定”两次。
您需要重新启动正在运行的应用程序才能将新路径应用于它们,而不是系统。
答案 1 :(得分:1)
这只能是以下两种情况之一:从批处理文件中看到的PATH问题,或者正在运行的命令中的拼写错误(例如,XCOPY)。
%systemroot%并不重要,因为XCOPY等在SYSTEM目录中(在WinXP C:\ Windows \ System32上),而%systemroot%是Windows目录(更高一级 - 再次,在XP C:\ Windows)。