1

У меня есть папка с именем « C:\Jobs\job#1 », « C:\Jobs\job#2 », « C:\Jobs\job#3 » и т.д., И в ней много каталогов и подкаталогов. Я хочу получить все каталоги в Jobs и скопировать их в C:\backup . Затем я хочу скопировать все файлы для каждого задания № 1, 2, 3 и т.д. В папку C:\backup\job#1\month\\*.* Чтобы было понятнее.

Source dir = C:\Jobs\job#1\"myfiles&dir"

Destination  dir = C:\Backup\job#1\month\"myfiles&dir"

затем сделайте следующую папку

Source dir = C:\Jobs\job#2\"myfiles&dir"

Пункт назначения dir = C:\Backup\job # 2\month\"myfiles & dir"

... пока все папки не станут резервными. Поскольку папка заданий продолжает увеличиваться, делая это таким образом, мне не нужно добавлять дополнительный код в этот скрипт, кроме изменения месяца. Спасибо.

2 ответа2

0

Если я вас правильно понимаю, вы собираетесь делать резервные копии своих папок. Я бы предложил использовать параметр /S. Введите help xcopy чтобы получить больше информации.

0

Проверьте, что DATE /T на вашем компьютере дает его в этом формате и с числовой частью в форме MM /DD /YYYY. Это требование для работы 2 операторов FOR. На моем компьютере DATE /T дает

C:\>DATE /T
Tue 11/15/2011

C:\>

Поместите ссылку на командный файл в планировщик задач. Вы можете запустить его раз в месяц .. Чтобы проверить, работает ли планировщик задач, я предлагаю переместить часы вашего компьютера. Я читал, что планировщик задач (возможно, в XP) может быть немного смешным с тем, выполняет ли он пакетные файлы, но тестирует его.

Запускайте это в планировщике задач каждый месяц.

Содержимое backup.bat за месяц \ формат работы

FOR /F "TOKENS=1,2,3,4 DELIMS=/ " %%A IN ('DATE /T') DO @set mm=%%B
FOR /F "TOKENS=1,2,3,4 DELIMS=/ " %%A IN ('DATE /T') DO @set yyyy=%%D

xcopy c:\jobs c:\bkup\%yyyy%_%mm% /e /I

Если вы хотите, чтобы он был в формате job\month, как вы написали, то сначала имейте в виду, что вам некуда поместить файлы из c:\jobs, вы просто скопируете каждый подкаталог и его содержимое.

Вы хотите, чтобы этот пакет запускался раз в месяц, поэтому поместите его в планировщик задач.

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

Например, если в c:\jobs\a нет файла и нет каталога. Тогда c:\bkup\a и c:\bkup\a\yyyy_mm не будут созданы. Что должно быть хорошо. Другие работы, например, работа в подкаталоге b, если в ней есть какие-либо файлы или каталоги, и она будет, если у вас там есть работа! это создаст каталоги в месте назначения.

Это может помочь вам понять часть резервного копирования.

C:\>for /f %f in ('dir c:\jobs /ad/b') do @echo xcopy c:\jobs\%f c:\bkup\%f\%yyyy%_
%mm% /e /I
xcopy c:\jobs\a c:\bkup\a\2011_11 /e /I
xcopy c:\jobs\b c:\bkup\b\2011_11 /e /I
xcopy c:\jobs\c c:\bkup\c\2011_11 /e /I

Содержимое файла backup.bat для резервного копирования в формате задание \ месяц.

FOR /F "TOKENS=1,2,3,4 DELIMS=/ " %%A IN ('DATE /T') DO @set mm=%%B
FOR /F "TOKENS=1,2,3,4 DELIMS=/ " %%A IN ('DATE /T') DO @set yyyy=%%D

for /f %f in ('dir c:\jobs /ad/b') do xcopy c:\jobs\%f c:\bkup\%f\%yyyy%_
%mm% /e /I

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