Подтвердить что ты не робот

Xcopy не распознается как внутренняя или внешняя команда, оперативная программа или командный файл

У меня проблема с командой "xcopy".

Я создаю проект С# с msbuild. В конце сборки выдается командный файл для копирования моих сборок из Debug/Release в другие папки.

Вот проблема, моя ошибка сборки и журнал ошибок: "xcopy не распознается как внутренняя или внешняя команда, оперативная программа или командный файл".

Путь корректно установлен, xcopy do работает из командной строки Windows и из командной строки visual studio (той, которая установлена ​​в среде проекта).

Я пытался установить путь в пакетном файле, но это не помогает.

Любое предложение?

Я использую Windows 7

Приветствия:)

4b9b3361

Ответ 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, включая ; в последний раз. Он будет работать, это совсем не связано с ОС или технологией. Он работает для меня, даже не нужно перезапускать ОС, просто откройте новую командную строку.