3

Я пытаюсь написать командный файл для резервного копирования локально сохраненных файлов на сетевой диск. Некоторые папки успешно копируются, а другие нет; вместо этого папка назначения удаляется при выполнении команды.

Работает как положено (копирует все файлы в папку назначения):

XCOPY /Y "C:\APPS\lse_jboss-4.2.3.GA-1.1\server\default\deploy\lse_datasources-esl_sourcesdedonnees" "H:\My Documents\RESTORE\Data sources"
XCOPY /Y "%AllUsersProfile%\Desktop" "H:\My Documents\RESTORE\Desktop - Global"
XCOPY /Y "%UserProfile%\Desktop" "H:\My Documents\RESTORE\Desktop - mwa700"
XCOPY /Y "%UserProfile%\Favorites" "H:\My Documents\RESTORE\Favorites"
XCOPY /Y "%UserProfile%\Application Data\Microsoft\Templates" "H:\My Documents\RESTORE\Office templates"

Не работает должным образом (копирует 0 файлов и удаляет папку назначения):

XCOPY /Y "%UserProfile%\java_libraries" "H:\My Documents\RESTORE\java_libraries"
XCOPY /Y "%UserProfile%\workspaces" "H:\My Documents\RESTORE\workspace"

Есть ли содержимое или свойства любой папки, которые могли бы объяснить это поведение?

3 ответа3

3

Да. По умолчанию xcopy копирует только файлы, но не каталоги. Поэтому, если ваши исходные каталоги содержат только другие подкаталоги, они не будут ничего копировать. Чтобы убедиться, что вы также копируете директоры, используйте флаг /E для копирования директорий и подкаталогов (включая пустые) или /S для пропуска пустых каталогов.

xcopy /Y /E "src" "dest"

Также используйте /I чтобы предположить, что назначение - это каталог, если копируется более одного файла.

xcopy /Y /E /I "src" "dest"

Для получения дополнительной помощи используйте

xcopy /?
1

Я не знаю, подходит ли вам этот ответ, но я использовал команду xcopy, чтобы скопировать всю папку C: в папку резервной копии на другом дисковом устройстве (назовите ее папкой E:\A). После успешного завершения копирования папка E:\A исчезла из Проводника!

Переместив устройство в E: на другой компьютер, я мог видеть, что xcopy установил атрибуты S и H (System and Hidden) для E:\A, заставляя его исчезать. Эти атрибуты, возможно, правильно были скопированы из папки C:\ в саму папку E:\A.

Я использовал команду attrib для восстановления этих двух атрибутов, и теперь все в порядке. E:\A содержит папки и файлы, которые были скопированы из C:.

0

Попробуйте использовать имя файла в формате dos для Documents and Settings или используйте переменную команды% userprofile% path.

Единственное различие между вашими двумя утверждениями выше - в рабочем скрипте нет пробелов в источнике, а в пути нерабочего скрипта есть пробелы.

Сначала используйте команду% userprofile% path, это проще и поддерживается всеми операционными системами MS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .