Xcopy не работает в bat файле
Вот проблема, моя сборка не удалась, и журнал ошибок: «xcopy не распознается как внутренняя или внешняя команда, работающая программа или командный файл».
Путь установлен правильно, xcopy do работает из командной строки Windows и из командной строки Visual Studio (той, которая установлена в среде проекта).
Я попытался указать путь в командном файле, но это не помогло.
Я использую windows 7
Я столкнулся с той же проблемой.
Похоже, это проблема с переменной среды пути в Visual Studio.
Когда я добавил оператор «path» в начало моего события сборки, он произвел следующий вывод:
Похоже, это указывает на то, что путь пуст в среде сборки VS.
Когда я укажу полный путь к xcopy вот так, проблема исчезла:
Я не уверен, что заставило Visual Studio потерять путь.
[Исправлено для меня] После добавления правильных путей к переменной окружения «Путь» она по-прежнему не работает (для cmd и VisualStudio) (даже после перезапуска ПК).
Проблема заключалась в неработающем параметре реестра: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment] ParameterName = ПУТЬ
Надеюсь, это поможет, если ничего не работает.
Перейдите к переменной среды и исправьте PATh, включая ; в последнюю очередь. Будет работать, это совершенно не связано с ОС или Технологией. У меня это работает, даже не нужно перезагружать ОС, просто откройте новую командную строку.
Я впервые испытал это с пакетным файлом, который я использую для копирования интерфейсного приложения Access на локальные машины пользователя. Их среда представляет собой смесь компьютеров с Windows 7 и 8 и 32-64-битных машин. Я заметил, что xcopy.exe находится в папках System32 и SysWOW64, и мне стало интересно, есть ли какой-то конфликт. Итак - я скопировал xcopy.exe в папку, где находится командный файл, и теперь, похоже, он работает. Просто подумал, что поделюсь этим.
Это случилось со мной после того, как я обновил одно из расширений Visual Studio, во время которого Visual Studio была закрыта и снова открыта программой обновления. Я больше не мог правильно построить свой проект. Я закрыл Visual Studio и снова открыл ее, и проблема исчезла.
Это не проблема Windows 7 или 8. На самом деле это проблема приложений, которые обновляют переменные среды, такие как PATH. PATH хранится в реестре как «расширяемое строковое значение» (REG_EXPAND_SZ), но многие приложения записывают его обратно в реестр как «строковое значение» (REG_SZ). Если ваш путь содержит что-то вроде% SYSTEMROOT%, он не будет расширен в C: \ Windows (или что-то еще у вас), если путь хранится в REG_SZ.
Вы можете определить, нарушен ли ваш путь таким образом, открыв командную строку и набрав PATH. Ваш путь будет указан. Если вы видите что-либо, заключенное в%%, значит, ваш путь не расширяется.
Установить переменную среды PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
не работает bat файл если в пути имеются русские символы.
Для примера:
@echo off
xcopy "D:\BASE\. \save" "%UserProfile%\Мои документы" /E /C /H /R /K /Y /Z
@echo off
xcopy "D:\БАЗА\. \save" "%UserProfile%\Documents" /E /C /H /R /K /Y /Z
Хоть вариант 1, хоть вариант 2 не работают. Переименовать папки нет возможности. Что можно сделать?
P.S.>> Поиском воспользовался, но ничего подходящего не нашел.
Конфигурация компьютера | |
Процессор: Intel Core i7-3770K | |
Материнская плата: ASUS P8Z77-V LE PLUS | |
Память: Crucial Ballistix Tactical Tracer DDR3-1600 16 Гб (2 x 8 Гб) | |
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб | |
Видеокарта: ASUS ROG-STRIX-GTX1080-O8G-11GBPS | |
Звук: Realtek ALC889 HD Audio | |
Блок питания: be quiet! Straight Power 11 650W | |
CD/DVD: ASUS DRW-24B5ST | |
Монитор: ASUS VG248QE 24" | |
ОС: Windows 8.1 Pro x64 | |
Индекс производительности Windows: 8,1 | |
Прочее: корпус: Fractal Design Define R4 |
Поиском воспользовался, но ничего подходящего не нашел. |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
если вы батник пишите в win-1251 кодировке, тогда папробуйте так.
Моя вина в поиске искал а в FAQ не заглянул. Исправлюсь
Возник вопрос DOS-866 и OEM 866 (пользуюсь Notepad++) это одно и тоже?
-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум
root221, Подскажи, как правильно написать данный код:
RMDIR \S \Q C:\Users\Administrator\Documents\Общие документы\Games
Не могу не как сделать чтобы на русском мог ввести. Переименовать папку " Общие документы " нельзя. Подскажи как правильно сделать, чтобы bat работал при запуске ?
Точнее код так выглядит RMDIR /S /Q C:\Users\Administrator\Documents\Общие документы\Games
как правильно написать данный код: RMDIR \S \Q C:\Users\Administrator\Documents\Общие документы\Games » |
Так и написать. Не забыв обрамить кавычками и использовав правильный вид слэшей для указания параметров.
Пакетный файл должен быть сохранён в кодировке OEM/866. Естественно, каталог c:\Users\Administrator\Documents\Общие документы\Games должен существовать и у пользователя, под которым будет исполняться пакетный файл, должно быть достаточно привилегий для его удаления.
Как в командном файле (лучше в CMD) прописать знак ° (''символ градуса'', 0176)?
PS: . этот символ расположен в пути файла, который нужно запустить через батник.
Как в командном файле (лучше в CMD) прописать знак ° (''символ градуса'', 0176)? » |
не работает bat файл если в пути имеются русские символы.
Для примера:
@echo off
xcopy "D:\BASE\. \save" "%UserProfile%\Мои документы" /E /C /H /R /K /Y /Z
@echo off
xcopy "D:\БАЗА\. \save" "%UserProfile%\Documents" /E /C /H /R /K /Y /Z
Хоть вариант 1, хоть вариант 2 не работают. Переименовать папки нет возможности. Что можно сделать?
P.S.>> Поиском воспользовался, но ничего подходящего не нашел.
Конфигурация компьютера | |
Процессор: Intel Core i7-3770K | |
Материнская плата: ASUS P8Z77-V LE PLUS | |
Память: Crucial Ballistix Tactical Tracer DDR3-1600 16 Гб (2 x 8 Гб) | |
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб | |
Видеокарта: ASUS ROG-STRIX-GTX1080-O8G-11GBPS | |
Звук: Realtek ALC889 HD Audio | |
Блок питания: be quiet! Straight Power 11 650W | |
CD/DVD: ASUS DRW-24B5ST | |
Монитор: ASUS VG248QE 24" | |
ОС: Windows 8.1 Pro x64 | |
Индекс производительности Windows: 8,1 | |
Прочее: корпус: Fractal Design Define R4 |
Поиском воспользовался, но ничего подходящего не нашел. |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
если вы батник пишите в win-1251 кодировке, тогда папробуйте так.
Моя вина в поиске искал а в FAQ не заглянул. Исправлюсь
Возник вопрос DOS-866 и OEM 866 (пользуюсь Notepad++) это одно и тоже?
-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум
root221, Подскажи, как правильно написать данный код:
RMDIR \S \Q C:\Users\Administrator\Documents\Общие документы\Games
Не могу не как сделать чтобы на русском мог ввести. Переименовать папку " Общие документы " нельзя. Подскажи как правильно сделать, чтобы bat работал при запуске ?
Точнее код так выглядит RMDIR /S /Q C:\Users\Administrator\Documents\Общие документы\Games
как правильно написать данный код: RMDIR \S \Q C:\Users\Administrator\Documents\Общие документы\Games » |
Так и написать. Не забыв обрамить кавычками и использовав правильный вид слэшей для указания параметров.
Пакетный файл должен быть сохранён в кодировке OEM/866. Естественно, каталог c:\Users\Administrator\Documents\Общие документы\Games должен существовать и у пользователя, под которым будет исполняться пакетный файл, должно быть достаточно привилегий для его удаления.
Как в командном файле (лучше в CMD) прописать знак ° (''символ градуса'', 0176)?
PS: . этот символ расположен в пути файла, который нужно запустить через батник.
Как в командном файле (лучше в CMD) прописать знак ° (''символ градуса'', 0176)? » |
не работает bat файл если в пути имеются русские символы.
Для примера:
@echo off
xcopy "D:\BASE\. \save" "%UserProfile%\Мои документы" /E /C /H /R /K /Y /Z
@echo off
xcopy "D:\БАЗА\. \save" "%UserProfile%\Documents" /E /C /H /R /K /Y /Z
Хоть вариант 1, хоть вариант 2 не работают. Переименовать папки нет возможности. Что можно сделать?
P.S.>> Поиском воспользовался, но ничего подходящего не нашел.
Конфигурация компьютера | |
Процессор: Intel Core i7-3770K | |
Материнская плата: ASUS P8Z77-V LE PLUS | |
Память: Crucial Ballistix Tactical Tracer DDR3-1600 16 Гб (2 x 8 Гб) | |
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб | |
Видеокарта: ASUS ROG-STRIX-GTX1080-O8G-11GBPS | |
Звук: Realtek ALC889 HD Audio | |
Блок питания: be quiet! Straight Power 11 650W | |
CD/DVD: ASUS DRW-24B5ST | |
Монитор: ASUS VG248QE 24" | |
ОС: Windows 8.1 Pro x64 | |
Индекс производительности Windows: 8,1 | |
Прочее: корпус: Fractal Design Define R4 |
Поиском воспользовался, но ничего подходящего не нашел. |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
если вы батник пишите в win-1251 кодировке, тогда папробуйте так.
Моя вина в поиске искал а в FAQ не заглянул. Исправлюсь
Возник вопрос DOS-866 и OEM 866 (пользуюсь Notepad++) это одно и тоже?
-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум
root221, Подскажи, как правильно написать данный код:
RMDIR \S \Q C:\Users\Administrator\Documents\Общие документы\Games
Не могу не как сделать чтобы на русском мог ввести. Переименовать папку " Общие документы " нельзя. Подскажи как правильно сделать, чтобы bat работал при запуске ?
Точнее код так выглядит RMDIR /S /Q C:\Users\Administrator\Documents\Общие документы\Games
как правильно написать данный код: RMDIR \S \Q C:\Users\Administrator\Documents\Общие документы\Games » |
Так и написать. Не забыв обрамить кавычками и использовав правильный вид слэшей для указания параметров.
Пакетный файл должен быть сохранён в кодировке OEM/866. Естественно, каталог c:\Users\Administrator\Documents\Общие документы\Games должен существовать и у пользователя, под которым будет исполняться пакетный файл, должно быть достаточно привилегий для его удаления.
Как в командном файле (лучше в CMD) прописать знак ° (''символ градуса'', 0176)?
PS: . этот символ расположен в пути файла, который нужно запустить через батник.
Как в командном файле (лучше в CMD) прописать знак ° (''символ градуса'', 0176)? » |
,но если указать напр. b="C:\Windows\System32" или Set oExec = WshShell.Exec("xcopy C:\Windows\System32 . /T")
,то не работает, что тут не так??
VBS не допускает вложенные папки?
Имена папок для примера только. Параметр "/T" для проверки работы скрипта.
Реально будет 4 уровень вложенности.
Заранее спасибо за помощь!
Xcopy, cmd and bat Не работает
Добрый день. Появилась такая проблема. Xcopy в батнике копирует с шары в папку на АРМ файл.
Некорректно работает команда xcopy
Запускаю следующий батник xcopy C:\12345\OUT\*.* C:\12345\IN\ На экране бесконечно мелькают.
XCOPY Отказано в доступе
XCOPY MYFOLDERS\etc\hosts %WINDIR%\System32\drivers\etc\hosts /H /Y /C /R /S Отказано в дотупе.
НиколайВасильев
1. У VBS другой раздел (ждём переноса).
2. Для создания пустой структуры папок вы используете xcopy. Так чего на VBS жалуетесь?
xcopy без разницы, какой каталог вы укажите — %WinDir% или %WinDir%\System32, если к обоим будет доступ чтения.
Не вижу никаких проблем с уровнем вложенности. Всё отрабатывает чётко с любым уровнем вложенности. Не понимаю, почему вы решили, что их всего 4:
.\BestPractices\v1.0\Models\Microsoft\Windows\WebServer\ru-RU\
.\config\systemprofile\Application Data\Acapela Group\HW2L\UserLexicons\
3. И зачем нужно определять Status? Что он вам даёт?
я не жалуюсь, я только спросил
почему Set oExec = WshShell.Exec("xcopy C:\aaa\bbb\cccc . /T")
не работает, но Set oExec = WshShell.Exec("xcopy C:\aaa . /T") работает без проблем
Мне статус вообще не нужен. Этот скрипт с xcopy взят с сайта мелкомягких для проверки работоспособности.
До этого, мне не приходилось запускать xcopy из vbs, потому взял готовый.
Собственно и vbs мне был бы не нужен вообще, если бы в bat была возможность работы со строчками.
Мой bat работает уже лет 10, но понадобилось менять принимаемый параметр, потому смотрю vbs.
НиколайВасильев, и что вы хотите? Я вам написал, что всё работает.
Весь скрипт: CreateObject("WScript.Shell").Run "xcopy %windir%\system32 . /T", 0
Какой именно работы?
Добавлено через 2 минуты
Да, ещё момент. У вас система x64? Если да, то из под процесса какой битности вы скрипт запускаете?
Читайте также: