Проверьте, что 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