Для начала знакомства с использованием Batch scripting давайте создадим на десктопе простой batch файл.
Для этого открываем Notepad (Start >> All Programs >> Accessories >> Notepad) и пишем туда следующие строчки:
В первой строке пишем: echo "hello"
Во второй строке: echo "the end"
Должно получиться так:

Сохраним созданный файлик по именем hello.bat. Теперь открываем Command Prompt (Start >> All Programs >> Accessories >> Command Prompt), пишем в открывшемся окне cd Desktop, а затем hello.bat. И как результат мы видем следующую картину:

Когда Vista запускает исполнение batch файла, каждая строка в нем исполняется отдельно. В нашем простом примере на экран сначала выводится "hello", а затем, в следующей строке, "the end". "Echo",- это простая команда которая выводит нужную нам информацию на экран. Ее можно использовать для этой цели в различных сценариях использования Batch scripting .
Теперь давайте посмотрим как все это может нам помочь в реальной жизни.
Откроем еще раз Notepad. В првой строке напишем cd c:\
а во второй xcopy c: e:\backup /s /e /h /D

Сохраним его как Test.bat и запустим. Команда xcopy скопирует все содержимое диска С в папку e:\backup.
Особенное удобство этого сценария заключается в том, что после первого раза, когда вы запустите файл Test.bat , будет выполняться резервное копирование файлов, которые были изменены. Иными словами, он не будет копировать весь жесткий диск каждый раз, когда вы запустите его,- он только копирует файлы, которые были изменены с предидущего раза.
Этот процесс можно автоматизировать, если поместить наш Test.bat в папку Start >> All Programms >> Startup.
Теперь резервное копирование файлов будет проишодить без Вашего вмешательства, каждый раз, когда вы будете заходить в систему.
По такому же сценарию можно автоматизировать процесс очистки папки Temp. Windows Vista Disk Cleanup Wizard делает хорошую работу, но он не удаляет файлы, которые находятся в папке Temp, пока они находятся там, если я не ошибаюсь, меньше чем семь дней. Поэтому, если нам нужно чтобы это случалось чаще, мы можем автоматизировать этот процесс так же как мы это сделали в случае с резервным копированием файлов.
Открываем Notepad. В первой строке пишем cd C:\Users\%username%\AppData\Local
а во второй rmdir /S /Q Temp. Сохраняем его как Test1.bat и кладем его в папку Startup. Тперь при каждом входе в систему, все временные файлы, которые оставались в папке Temp с вашего последнего сеанса, будут автоматически удалены.
Конечно же все что описывалось выше это хорошо, но я не думаю, что резервное копирование всего диска с помощью Batch scripting - это хорошая идея... Во первых на это уходит много времени, а во вторых, есть множество других, более эффективных способов, сохранить содержимое логического диска. Но все же я хочу рассказать как я пользуюсь Batch scripting на своем домашнем компютере, на котором установлена Windows Vista Ultimate. Я привык сохранять все линки, которымя пользуюсь в меню Favorites в IE. Там у меня все линки расположены в папках соответвующих той или иной тематике. Мне очень важно, чтобы эта папка не пропала случайным образом, поэтому я использую Batch scripting для резервного копирования содержимого папки Favorites в другое место. Также в этом файле я объеденил резервное копирование папки Favorites с удалением содержимого папки Temp. Вот как выглядит содержимое моего Backup.bat:
Код: Выделить всё
cd c:\
xcopy C:\Users\Igor\Favorites G:\Backup\VistaFavorites /s /e /Y
cd C:\Users\%username%\AppData\Local
rmdir /S /Q Temp
Папка Favorites это только пример того, как я использую скрипт, Вы можете по этому сценарию создавать скрипты, которые будут копировать данные из тех папок, содержание которых важно для Вас...
Положив этот файл в папку Startup:

каздый раз, заходя в компютер, я воочию наблюдаю процесс сохранения файлов:

Обычно такие скрипты настраиваются на исполнение во время процесса log off. Поэтому, далее я расскажу как настроить чтобы то, что описано выше, происходило во время выключения компютера. И, пользясь случаем, расскажу о таком новшестве в Windows Vista, как multiple local group policies. Сразу скажу, что для пользователей Home версий Windows Vista все что будет описано далее не актуально. Сначала небольшое отступление, по поводу multiple local group policies... В предидущих версия ОС была остнастка, которая называлась local security policies. С ее помощью можно было конфигурировать различные настройки, которые впоследствие распостарнялись на всех пользователей данного компютера. Например, можно было запретить запуск файлов с раширением vbs. Проблема заключалась в том, что эти настройки распостранялись на всех пользователей компютера. В Windows Vista во-первых стало больше доступных настроек, а во-вторых,- груповые политики теперь можно настраивать для различных пользователей одного и того же компютера независимо друг от друга.
Рассмотрим простой пример. Я хочу, чтобы Backup.bat, о котором шла речь выше, исполнялся во время выключения компютера, а не тогда, когда я захожу в систему. И кроме того, мне нужно чтобы резервировались только мои фавориты, а не всех пользователей моего компютера.
Для эого делаем следующее:
1. Идем в Start >> Run пишем mmc и жмем на Enter. В открывшемся окне идем в меню File >> Add or Remove Snap-inn:

Из появившегося списка выбираем Group Policy Object Editor и жмем на кнопку Add:

2. Жмем на ОК и перед нами появляется такое окошко:

В строке выбора Group Policy Object жмем на кнопку Browse и в открывшемся окошке переходим в закладку Users:

Здесь по идее мы должны видеть всех пользователей, для которых были созданы аккаунты на данном компютере.
И именно здесь мы имеем возможность выбрать на кого будут действовать настройки, которые мы собираемся конфигурировать. Если выбрать Administrator,- настройки будут действовать только на него. Если выбрать группу Administrators,- настройки будут действовать на всех пользователей, аккаунты которых принадлежат к группе администраторы, Non-Administrators,- на всех стандартных пользователей. Я же хочу, чтобы настройки распостранялись только на мой аккаунт, поэтому я выбираю Igor. Затем жмем на ОК и Finish, пока не окажемся в окне mmc, к которому мы добавили объект Group Policy Object Editor.
Теперь самое время заняться настройками. Идем по следующей схеме: Local Computer\Igor Policy >> User Configuration >> Windows Settings >> Scripts (Logon/Logoff):

3. В правой половине окна делаем двойной клик на Logoff:

и жмем на кнопку Show files:

4. В открывшееся окно копируем наш Backup.bat и затем закрываем его:

5. Теперь жмем на кнопку Аdd:

И затем, нажав на Browse:

В открывшемся окне выбираем наш файл, и кликаем на кнопку Open:

Теперь, нажав на ОК, если все было сделано правильно, то выглядеть это должно так:

6. Жмем на ОК и возвращаемся в окно mmc Local Computer\Igor Policy. Теперь, чтобы насладиться зрелищем резервного копирования файлов и очищения папки Temp, нужно включить еще одну настройку. Это делать необязательно, просто скрипт будет запускаться в бэкраунде и мы не сможем наблюдать за его выполнением.
Открываем Local Computer\Igor Policy >> User Configuration >> Administrative Templates >> System >> Scripts:

В правой полвине окна делаем двойной клик на Run logoff scripts visible, и включаем эту настройку:

Жмем на ОК и закрываем все окна. На предложение о сохранении консоли отвечаем по желанию да или нет. В любом случае можно будет создать такую консоль заново.
7. Теперь идем в Start >> Run >> cmd и в открывшемся окне пишем команду gpupdate /force:

Это нужно для того, чтобы созданные нами настройки возымели действие немедленно. Ну и наконец пришло время протестировать как все это работает. Делаем Log off или рестарт и наблюдам за происходящим процессом.
Я в этой статье рассказал как можно использовать простой скрипт для резервного копирования файлов, папки Favorites, очистить папку Temp и как автоматизировать этот процесс. Прошу обратить внимание, что при написании скрипта, имена папок и буквы логических дисков Вы должны использовать в соответствие тому, как они называются на Вашем компютере. У кого возникнут дополнительные вопросы по статье, задам их здесь, в топике.
Удачи в Ваших начианиях!!