در این آموزش ما یاد می‌گیریم چگونه بدون نیاز به نرم افزار های جانبی برنامه‌ای برای گرفتن Backup های روزانه تنظیم کنیم. به طوری که پوشه های مورد نظر ما به موقع خیلی تر و تمیز در مکان مشخص شده ذخیره می‌شوند و به طور اتوماتیک تاریخ گذاری هم می‌شوند که بعدآ بدانید کدام نسخه‌ی پشتیبان در چه تاریخی ساخته شده است.

ابتدا Notepad را باز کنید. (راحت ترین راه این است که از منوی استارت Run را انتخاب کنید و تایپ کنید notepad).

ما از نت پد برای درست کردن یک برنامه‌ی Batch یک خطی استفاده می‌کنیم که به کامپیوتر فرمان می‌دهد کدام پوشه را در کدام مسیر کپی کند.

برای این کار در نت پد تایپ می‌کنم:

برای این کار در نت پد تایپ می‌کنم:

xcopy c:\zangoole\* h:\backup\zangoole\%date:~0,3%\* /Y /S

و با پسوند bat. ذخیره می‌کنم. به این فایل ها فایل های Batch می‌گویند و به این جور کد نویسی ها Batch Programming

این دستور می‌گوید تمام محتوای پوشه‌ی زنگوله که در درایو c قرار دارد را در پوشه‌ی روز هفته\backup\zangoole که در درایو h قرار دارد کپی کن. که درایو h من همان کول دیسک‌ام است. می‌توانید درایو های دیگر را هم انتخاب کنید اما من کول دیسک را ترجیح می‌دهم.

عبارتی که بعد از zangoole\ می‌بینید (%date:~0,3%) روز هفته را بر می‌گرداند.

یعنی اگر این دستور امروز در کامپیوتر من اجرا شود هر چه در c:\zangoole وجود دارد کپی می‌شود در h:\backup\zangoole\Sat

(Sat مخفف Saturday (شنبه) است.)

حالا این فایل را با اسم Backup.bat ذخیره کنید. هر وقت این فایل اجرا شود نسخه‌ی پشتیبان شما ایجاد می‌شود. حالا کافیست از کنترل پنل وارد Scheduled Tasks شوید و مشخص کنید که این برنامه مثلآ هفته‌ای یک بار اتوماتیک اجرا شود.

برای این کار Add Scheduled Tasks را انتخاب کنید و طبق عکس های زیر پیش بروید:

۴ - ۳ - ۲

خوب حالا اون برنامه‌ی پشتیبان گیر که ساختیم طبق برنامه‌ای که مشخص کرده‌ایم سر موقع اجرا می‌شه و ما اطلاعاتمان را از دست نمی‌دیم. اگر خیلی تند به تند لازم ندارید که پشتیبان تهیه کنید هر وقت مایل بودید کول دیسکتان را نصب کنید و سپس خودتان برنامه را اجرا کنید.

اصل کار ما تازه از اینجا شروع می‌شود!
اگر قصد دارید تا آخر Scroll Down کنید از خیر این پست بگذرید!
تا دقیق نخوانید چیزی یاد نخواهید گرفت.

تا اینجای کار را از TeamTutorials یاد گرفتم. اما زنگوله این وسط چی کاره است؟ یک مترجم خشک و خالی؟ نه نه نه! حالا بیایید یکم خلاقیت به کارمان اضافه کنیم. چه خلاقیتی؟ اگر در بالا دقت کرده باشید می‌بینید که دستور پشتیبان گیری یک فولدر با نام روز هفته (به انگلیسی) ایجاد می‌کند. حالا ما با استفاده از Batch Programming تغییراتی اعمال می‌کنیم که فولدر ها به ترتیب سال ، ماه و روز هفته‌ی فارسی ایجاد شوند.

کاری که باید بکنیم این است آن برنامه‌ی یک خطی را کمی تغییر دهیم. اصلآ  آن یک خط را ول کنید. از اول شروع می‌کنیم:

کد ما می‌شود:


@echo off
set var1=%date:~0,3%
if %var1%==Sat set rooz=shanbe
if %var1%==Sun set rooz=1shanbe
if %var1%==Mon set rooz=2shanbe
if %var1%==Tue set rooz=3shanbe
if %var1%==Wed set rooz=4shanbe
if %var1%==Thu set rooz=5hanbe
if %var1%==Fri set rooz=jome
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
xcopy c:\zangoole\* h:\Backups\%yyyy%\%mm%\%dd%\%rooz%\zangoole\* /Y /S >>
h:\Backups\%yyyy%\%mm%\%dd%\%rooz%\Log-%yyyy%-%mm%-%dd%.txt

از آنی که فکر می‌کنید خیلی خیلی ساده تر است ، فقط توضیحات را با دقت بخوانید!

خط اول: چیز مهمی نیست. اگر نباشد کد های برنامه هنگام اجرا شدن در صفحه دیده می‌شود.

خط دوم: در اینجا ما یک متغیر تعریف می‌کنیم به نام var1 و روز هفته را در آن می‌ریزیم.

خط سوم تا نهم: می‌گوییم اگر var1 مساوی با Sat بود متغیر rooz را مساوی با shanbe قرار بده و الی آخر… این طوری روز هفته به فارسی را در متغیر rooz داریم.

خط دهم: این دستور تاریخ روز را بر می‌گرداند یعنی سال و ماه و روز همگی در کنار هم. ( با فرمت dd/mm/yyyy )

خط یازدهم تا شانزدهم: این خطوط متغیری تعریف می‌کنند و سال و ماه و روز را جداگانه در آنها می‌ریزند یعنی مثلآ mm می‌شود مساوی با ۰۷ یعنی ماه هفتم و dd می‌شود ۱۸ یعنی روز هجدهم و yyyy می‌شود ۲۰۰۸/

خط هفدهم تا آخر: این خط دستور اصلی ما است که می‌گوید هر چه در پوشه‌ی c:\zangoole وجود دارد را کپی کن در

h:\Backups\%yyyy%\%mm%\%dd%\%rooz%\zangoole

که برنامه با توجه به دستور هایی که بالا به آن دادیم به جای %yyyy% سال ، به جای %mm% ماه ، به جای %dd% روز و به جای %rooz% نام روز هفته به فارسی را می‌گذارد.

یعنی مثلآ اگر من امروز این برنامه را اجرا کنم یک پوشه به آدرس زیر در درایو h من که کول دیسک ام است ساخته می‌شود:

h:\Backups\2008\09\28\1shanbe\zangoole

Y/ می‌گوید اگر فایل موجود بود روی همان فایل بنویس و سوال نکن.

S/ می‌گوید اگر پوشه‌ای خالی بود آن را کپی نکن.

قابلیت تولید Log:

آنچه بعد از Y / S/ می‌بینید می‌گوید خروجی دستور xcopy که همان آدرس فایل های کپی شده است را در یک فایل به نام

Log-%yyyy%-%mm%-%dd%.txt ذخیره کن. یعنی هر وقت بخواهید می‌توانید به پوشه‌ای که نسخه‌ی پشتیبان در آن قرار دارد بروید و ببینید که چه فایل هایی با موفقیت کپی شده‌اند.

دریافت این اسکریپت - کمتر از ۱KB

خوب چطور بود؟ با یک نت پد چه کار ها که نمی‌شود کرد ، نه؟