Резервное копирование файлов и папок с помощью простого пакетного сценария

Старые добрые пакетные скрипты всегда пригодятся. В Windows для автоматизации резервного копирования содержимого некоторых папок можно использовать простой скрипт, который позаботится о создании резервной копии целых путей.

Команда XCOPY особенно полезна для этой цели. Мы будем использовать его вместе с некоторыми «переключателями», чтобы регулировать его поведение. Как видно из приведенного ниже скрипта, XCOPY вызывается с помощью переключателей /c/d/ и /h/i/r/y: в строгом алфавитном порядке кратко резюмируем значение каждого из них.

/c продолжает копирование файлов и папок, даже если возникает ошибка. Если копирование файла невозможно по каким-либо причинам, процедура копирования остальных элементов не будет прервана.

/d требует, чтобы вы копировали только те файлы, которые изменились после определенной даты. Поскольку в этом случае дата не указана, XCOPY копирует только те файлы, дата создания которых более поздняя, ​​чем у одноименного файла, возможно, содержащегося в папке назначения.

/ и позволяет копировать все папки, включая любые имеющиеся подпапки. Вместо этого, используя параметр /s, XCOPY будет копировать только непустые папки.

/h также копирует скрытые файлы и системные файлы.

/ i Если место назначения не существует и копия включает несколько файлов, предполагается, что место назначения является каталогом.

/r также перезаписывает любые файлы с атрибутом только для чтения.

/ y запрещает сценарию запрашивать подтверждение любой операции перезаписи файла из исходной папки в папку назначения.

В следующем пакетном сценарии мы сосредоточили свое внимание только на предопределенных папках для хранения документов, содержимом рабочего стола Windows, списке избранных веб-сайтов Internet Explorer. Однако будет легко добавить новые пути (например, если вы обычно храните свои файлы в других каталогах или на других дисках). @ЭХО ВЫКЛ.

Версия SET = неизвестна
ВЕР | FINDSTR/IL «5.0» > NULL
ЕСЛИ %ERRORLEVEL% EQU 0 УСТАНОВИТЬ Versione=2000
ВЕР | FINDSTR/IL «5.1.» > НУЛЕВОЕ
ЕСЛИ %ERRORLEVEL% EQU 0 УСТАНОВИТЬ Versione=XP
ВЕР | FINDSTR/IL «6.0.» > НУЛЕВОЕ
IF% ERRORLEVEL% EQU 0 SET Version = View
ВЕР | FINDSTR/IL «6.1.» > НУЛЕВОЕ
ЕСЛИ %ERRORLEVEL% EQU 0 SET Versione=Seven

if%Version%== WINVISTA перейти к просмотру
если %Versione%==Seven перейти на WIN7
если %Versione%==2000 перейти на WIN2000
если %Versione%==XP перейти к WINXP
перейти к FINE

:ВИНВИСТА
: WIN7
xcopy /c /d /e /h /i /r /y «%USERPROFILE%Documents» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Documents»
xcopy /c /d /e /h /i /r /y «%USERPROFILE%Desktop» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Desktop»
xcopy /c /d /e /h /i /r /y «%USERPROFILE%Favorites» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Favorites»
перейти к FINE

:WIN2000
:ВИНХР
xcopy /c /d /e /h /i /r /y «%USERPROFILE%Documenti» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Documenti»
xcopy /c /d /e /h /i /r /y «%USERPROFILE%Desktop» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Desktop»
xcopy /c /d /e /h /i /r /y «%USERPROFILE%Preferiti» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Preferiti»

:ОТЛИЧНО
УСТАНОВИТЬ версию =
эхо Резервное копирование завершено.

Работа скрипта достаточно проста. Во-первых, используется трюк, чтобы попытаться определить версию Windows, установленную в системе. Для этого вызывается команда VER и анализируется ее вывод. В зависимости от обнаруженного номера версии создается новая переменная (называемая «Версия»), и в ней сохраняется строка, относящаяся к версии используемой операционной системы.

Ожидается обнаружение Windows 2000, Windows XP, Windows Vista и Windows 7 (команда VER указывает, например, Windows 7 как Windows 6.1, а Windows Vista как Windows 6.0). Если вы также хотите добавить Windows Server 2003, вам придется, например, ввести что-то вроде этого:
ВЕР | FINDSTR/IL «5.2.» > НУЛЕВОЕ
ЕСЛИ %ERRORLEVEL% EQU 0 УСТАНОВИТЬ Versione=2003
Однако позже вам потребуется добавить некоторый код, чтобы учесть возможность запуска пакетного сценария в Windows Server 2003 или Windows Server 2008.

В зависимости от установленной операционной системы затем выполняются разные команды. Выбранный подход позволяет работать с соответствующими папками, которые различаются в зависимости от версии Windows. Например, если в итальянской Windows XP папка, содержащая закладки Internet Explorer, называется «Избранное», в Windows 7 на итальянском языке она становится «Избранное».

В качестве папки назначения (второй аргумент команды XCOPY) указывается следующее:
«BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%nome_cartella»
Это означает, что как только пакетный скрипт будет запущен, он создаст новую папку — в том же каталоге, где был сохранен файл .BAT — и присвоит ей имя BACKUP_name_of_computer_date_creation.

Использование %date:/=-% считывает системную переменную, содержащую текущую дату (часы Windows), и заменяет символ «https://www.ilsoftware.it/» на «-». Эта последняя операция замены необходима, поскольку Windows не принимает косую черту в именах файлов и папок.

Однако перед запуском сценария или выполнением какого-либо вмешательства снова и снова проверяйте правильность указанных исходного и конечного путей.

Добавив оператор типа xcopy /c/d/e/h/i/r/y «%APPDATA%MicrosoftAddress Book» «BACKUP_%COMPUTERNAME%_%date:/=-%%USERNAME%Address Book «Например, в случае Windows XP вы можете добавить копию адресной книги Outlook Express.

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

Добавить комментарий

Ваш адрес email не будет опубликован.