Xcopy не распознается как внутренняя или внешняя команда, оперативная программа или командный файл
У меня проблема с командой "xcopy".
Я создаю проект С# с msbuild. В конце сборки выдается командный файл для копирования моих сборок из Debug/Release в другие папки.
Вот проблема, моя ошибка сборки и журнал ошибок: "xcopy не распознается как внутренняя или внешняя команда, оперативная программа или командный файл".
Путь корректно установлен, xcopy do работает из командной строки Windows и из командной строки visual studio (той, которая установлена в среде проекта).
Я пытался установить путь в пакетном файле, но это не помогает.
Любое предложение?
Я использую Windows 7
Приветствия:)
Ответы
Ответ 1
Я столкнулся с той же проблемой.
Кажется, что проблема связана с переменной среды пути в Visual Studio.
Когда я добавил оператор "path" в начало моего события сборки, он произвел следующий вывод:
PATH=
Это указывает на то, что путь пуст в среде сборки VS.
Когда я укажу полный путь к xcopy, как это, проблема исчезла:
%systemroot%\System32\xcopy ...
Я не уверен, почему Visual Studio потеряла этот путь.
Ответ 2
Установить переменную окружения PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
Ответ 3
Это случилось со мной после того, как я обновил одну из моих расширений Visual Studio, во время которой Visual Studio была закрыта и снова открыта обновителем. Я больше не мог правильно строить свой проект. Я закрыл Visual Studio и снова открыл его, и проблема исчезла.
Ответ 4
Это не проблема с Windows 7 или 8. На самом деле это проблема с приложениями, которые обновляют переменные среды, такие как PATH.
PATH хранится в реестре как "расширяемое строковое значение" (REG_EXPAND_SZ), но многие приложения записывают его в реестр как "значение строки" (REG_SZ). Если в вашем пути содержится что-то вроде% SYSTEMROOT%, это не будет расширяться в C:\Windows (или что-то другое), если путь указан в REG_SZ.
Исправление - просто отредактировать свой путь вручную с панели управления. Вам необходимо внести изменения (например, добавить a; в конец пути), а затем применить его. Это установит ваш путь в реестре как REG_EXPAND_SZ.
(Перейдите на панель управления системой и выберите "Дополнительные системные настройки". Измените переменную среды "Контур" в нижнем поле, и это должно исправить ее.
Вы можете определить, нарушен ли ваш путь таким образом, открыв командную строку и набрав PATH. Ваш путь будет указан. Если вы видите что-либо, заключенное в%%, ваш путь не расширяется.
Ответ 5
Я впервые испытал это с помощью командного файла, который я использую, чтобы скопировать приложение Front Access на локальные компьютеры пользователя. Их окружение представляет собой комбинацию машин с Windows 7 и 8 и 32-64 бит. Я заметил, что xcopy.exe был как в папках System32, так и SysWOW64, и я подумал, был ли конфликт. Итак - я скопировал xcopy.exe в папку, где находится пакетный файл, и теперь он работает. Просто подумал, что я поделюсь этим.
Эйлин
Ответ 6
У меня также была проблема с xcopy (то же сообщение об ошибке) - с очень простой пакетной программой, которую я использую для резервного копирования файлов на съемный диск. Использовали эту программу в течение как минимум 5 лет без проблем. Тогда вчера xcopy неизвестно Win7. Замена xcopy на% systemroot%\System32\xcopy на каждом экземпляре решила проблему. Очень странно.
Ответ 7
[Исправлено для меня] После добавления правильных путей к переменной среды "Путь" он все равно не работает (для cmd и VisualStudio) (даже после перезагрузки ПК).
Проблема была в неверном параметре реестра: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] ParameterName = PATHEXT
Я имел значение .wlua;. Exe. Возможно был сломан после установки чего-либо. Все снова работает после изменения его на: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Надеюсь, это поможет, если ничего не работает.
Ответ 8
Перейдите к переменной окружения и верните PATh, включая ;
в последний раз.
Он будет работать, это совсем не связано с ОС или технологией.
Он работает для меня, даже не нужно перезапускать ОС, просто откройте новую командную строку.