Команда виндовой консоли (cmd) XCOPY гораздо лучше своего досовского собрата COPY тем, что позволяет копировать всё содержимое папки с подпапками, что не заменимо при написании bat-файлов для задач резервного копирования. И, если описание этой команды найти не сложно (например, тут), то описание ошибок практически невозможно.
Обычно после написания первого скрипта мы получаем ошибку "Недопустимый путь".
Вызвана она может быть следующими причинами (в продолжении):
chcp 1251
xcopy "c:\Работа\"*.* "d:\Резервная копия\" /Y /H
Обычно после написания первого скрипта мы получаем ошибку "Недопустимый путь".
Вызвана она может быть следующими причинами (в продолжении):
- Русские символы в пути. Дело в том, что по умолчанию консоль работает с кодировкой OEM 866 , а блокнот c ANSI (windows 1251 для руссифицированной винды). Лечится указанием кодировки в начале скрипта chcp 1251 .Единственный минус - на нормальный вывод русских букв после этого без танцев с бубном не надейтесь (он-то по прежнему будет в oem-866).
- Пробелы в пути. Если путь содержит пробелы, то его обязательно заключать в двойные кавычки "". Да и вообще, проще выработать привычку всегда заключать путь в кавычки в команде xcopy.
- Отсутствует маска файла. Еще одна распространенная ошибка: если надо копировать все содержимое папки, то маску все-равно надо задавать! В следующем виде: "*.*" Если путь заключён в кавычки, то делать это надо следующим образом: маска файла указывается после закрытия кавычки.
chcp 1251
xcopy "c:\Работа\"*.* "d:\Резервная копия\" /Y /H
Данный bat -файл скопирует все содержимое папки c:\Работа\ в d:\Резервная копия\ со скрытыми и системными файлами и перезаписью существующих.
Спасибо, помогло
ОтветитьУдалитьСпасибо, работает!
ОтветитьУдалитьБлагодарю!
ОтветитьУдалитьогромное спасибо, всё чётко разъяснил. Красава
ОтветитьУдалитьура заработало наконецто
ОтветитьУдалитьспустя годы этот материал всё ещё полезен! Спасибо!
ОтветитьУдалитьСпасибо!
ОтветитьУдалить