-
خوب امشب میخوام یک سری از فرمان ها رو که اکثر در فایل های دستوری کاربرد دارن رو بهتون یاد بدم.البته بعضی ها رو ممکنه قبلا گفته باشم ولی الان توضیحات ساده تر و کامل تری میدم...
Echo
این فرمان دو کاربرد دارد.کاربرد اول:فعال سازی یا غیر فعال سازی نمایش خروجی فرمان ها.
ابتدا بگم که خروجی فرمان همون متنی هست که بعد از اجرای فرمان روی صفحه ظاهر میشه.(به زبان ساده!)
با فرمان زیر خروجی فرامین غیر فعال میشود.(یعنی خروجی فرامین دیگر نمایش داده نمیشود مگر در مواردی خاص.مثلا بروز خطا)
[HTML]echo off[/HTML]
به طور پیش فرض خروجی فعال است.با دستور بالا غیر فعال میشود.برای فعال سازی:
[HTML]echo on[/HTML]
کاربرد دوم:نمایش پیغام
با استفاده از فرمان اکو میتوانید فرمانی را در صفحه به نمایش گذارید.فرقی ندارد که خروجی خاموش باشد یا نه.برای نمایش پیغام به روش زیر عمل میکنیم:
[HTML]echo Prompt[/HTML]
که Prompt همان پیغام مورد نظر است.
در پست بعدی با دو فرمان دیگر هم آشنا خواهید شد...موفق باشید...
-
با عرض سلام مجدد.چند تادستور رو میخوام آموزش بدم:
فرمان Rem
کاربرد چندان ندارد.برای نمایش پیغامی استفاده میشود.
[HTML]Rem prompt[/HTML]
Prompt همان پیغام است.
CLS
فکر کنم کاربردشو قبلا هم گفتم.برای پاک کردن صفحه به کار میرود.
[HTML]cls[/HTML]
تغییر مسیر خروجی
خروجی تمام دستوراتی که مینویسید روی صفحه نوشته میشود.برای مثال اگر فرمان کپی را اجرا کنید خروجی آن را روی صفحه میبینید.اما فرض کنید میخواهید خروجی فرمان را به پرینتر منتقل کنید.در این حالت باید مسیر خروجی را به پرینتر تغییر دهید.
شما میتوانید خروجی را به یک فایل یا یکی از دستگاه های زیر منتقل کنید:
[HTML]
CON---------------------------------------------کنسول، مانیتور یا مخصوصا صفحه کلید
AUX---------------------------------------------اولین پورت سریال ناهمگام
COM1-------------------------------------------مانند AUX
COM2-------------------------------------------دومین پورت سریال ناهمگام
COM3-------------------------------------------سومین پورت سریال ناهمگام
COM4-------------------------------------------چهارمین پورت سریال ناهمگام
PRN---------------------------------------------اولین چاپگر
LPT1--------------------------------------------اولین چاپگر
LPT2--------------------------------------------دومین "
LPT3--------------------------------------------سومین "
NUL---------------------------------------------ابزار فرضی مورد استفاده برنامه نویسان[/HTML]
خوب حالا موقع استفاده است.به فرمان زیر دقت کنید:
[HTML]Copy con c:\n.twt[/HTML]
کلمه اول فرمان کپی است.اما به جای فایل مبدا نوشته ام Con.این نشان میدهد که ورودی از کنسول که اینجا به کیبرد اشاره دارد دریافت میشود.سپس مقصد را هم فایلی به اسم n.txt مشخص کرده ام.پس از اجرای این دستور میتوانید هر چه را خواستید تایپ کنید و بعد از پایان کار کلید های Ctrl و Z را فشار دهید و اینتر را بزنید.سپس تمامی متن به فایل کپی میشود.همچنین در فرمان زیر:
[HTML]copy c:\n.txt prn[/HTML]
محتویات فایلی که ایجاد کردید چاپ میشود.خوب حالا میخواهیم خروجی فرامین را منتقل کنیم.زیرا روش کنونی شامل خروجی نبود.اصلا ربطی هم نداشت.
برای انتقال خروجی فرامین از علامت های زیر استفاده میکنیم:
[HTML]>
>>[/HTML]
اما تفاوت آن ها چیست؟؟؟
بگذارید ابتدا یک مثال بزنیم:
[HTML]Dir c: > c:\d.txt[/HTML]
پس از اجرای این دستور خروجی Dir که همان لیست دایرکتوری است به فایلی در C منتقل میشود.روی صفحه هم نمایش نمیابد.اکنون تفاوت این دو فرمان را میگویم.
وقتی از یک علامت استفاده میکنیم خروجی را منتقل میکنیم و محتویات قبلی فایل پاک میشود.یعنی هر چه در فایل بوده پاک و خروجی به جای آن نوشته میشود.اما وقتی از دو علامت استفاده کنید محتویات قبلی باقی میماند.
امیدوارم مفید واقع شده باشه...
-
با عرض سلاممجدد خدمت دوستان.میخواستم حق انتخاب به کاربر و ارورلول رو بگم که دیدم زوده بهتره چند فرمان دستوری دیگه هم بگم...
اول تشکر میکنم از
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
عزیز که پستارو دنبال کردن.واقعا از اینکه شات نمیتونم از پنجره ها بذارم معذورم.الان لینوکسم...
فرمان Pause
فرض کنید به جایی از فایل میرسید و میخواهید برنامه یک لحظه متوقف شود و بعد از فشردن کلید برنامه ادامه یابد.در این صورت از این فرمان استفاده میکنیم.شکل استفاده:
[HTML]pause message[/HTML]
Message پیغامی است که میخواهید به نمایش در آید.(اختیاری)ابتدا پیغام نوشته میشود و سپس خط فرمان پیغام خود را مینویسد.
[HTML]Press any key to continue...[/HTML]
در ضمن،برای متوقف کردن دستورات کافی است کلید Break روی صفحه کلید یا کلید های Ctrl و C را فشار دهید.در این صورت همه ی دستورات یک پنجره متوقف میشوند.
فرمان Call
اگر بخواهید یک نرم افزار یا فایل اجرایی یا فایل دستوری دیگر را در همان پنجره باز کنید، از این فرمان استفاده کنید.البته این کار تنها با ذکر مسیر فایل نیز امکان پذیر است.
[HTML]Call Path[/HTML]
Pathبه مسیر فایل اشاره دارد.برای مثال این دستور:
[HTML]Call c:\program files\mozilla firefox\firefox.exe[/HTML]
مرورگر فایرفاکس را در صورتی که نصب شده باشد اجرا میکند.این فرمان را امتحان کنید.
باقی فرامین فایل های دستوری برای بعد.امشب وقت ندارم...
-
میخوام به یه فرمان مهم و کاربردی اشاره کنم.
فرمان set
از این فرمان برای تخصیص یک نام به یک فرمان یا مسیر استفاده میشود.بگذارید ساده تر بگم...
فرض کنید فایلی دارید که مسیر آن بار ها در برنامه به کار میرود.شما میتوانید یک نام را به آن اختصاص دهید.مثلا این فرمان:
[HTML]set p=c:\program files[/HTML]
نام p را به مسیر c:\program files اختصاص میدهد.پس از اجرای این دستور در برنامه هر وقت که بخواهید این مسیر را به کار گیرید به شکل زیر باید عمل کنید:
[HTML]%p%[/HTML]
مثلا پوشه Common files را میخواهید کپی کنید که در Program files قرار دارد:
[HTML]xcopy %p% d:[/HTML]
فرمان Type
برای مشاهده محتویات یک فایل متنی استفاده میشود:
[HTML]type c:\new.txt[/HTML]
این دستور محتویات فایل new.txt را نمایش میدهد.
من معمولا این دستور را با انتقال خروجی برای کپی محتویات فایل به فایلی دیگر استفاده میکنم:
[HTML]type c:\old.txt > c:\new.txt[/HTML]
این فرمان محتویات فایل old را نمایش میدهد اما خروجی آن که همان محتویات است به جای نمایش روی صفحه به فایل new منتقل میشود و محتویات قبلی فایل new نیز پاک میشود.
-
712:بالاخره داریم میرسیم به فرمان های مهم تر.این دفعه میخوام فرمان errorlevel رو بهتون یاد بدم.ولی بهتره که قبلش دستور شرطی if رو یاد بگیرید.اگه برنامه نویسی کمی بلد باشید آسونه ولی اگه اینطور نیست نیاز به یکم تلاش بیشتره...
//-------------------------------------
فرمان IF:ساختار کلی آن به این شکل است:
[HTML]If “condition” “command”[/HTML]
که منظور از condition شرط و منظور از command فرمانی است که اجرا میشود.اگر بخواهم با یک مثال بگویم، فرض کنید میخواهید فایل دستوری ای بسازید که اگر یک شرط، مثلا وجود یک فایل، درست بود فرمانی را اجرا کند.دستور ما برای این کار این است:
[HTML]If exist c:\test.txt echo File is exist!!![/HTML]
در این دستور ابتدا شرط ما بررسی میشود.در اینجا شرط exist c:\test.txt میباشد.یعنی فایل test.txt در درایو سی موجود باشد.اگر این شرط درست باشد دستور مقابل آن یعنی echo File exist!!! اجرا میشود.
انواع شرط های قابل قبول:
شما میتوانید سه نوع شرط را به کار برید که به بررسی آن ها میپردازیم:
الف)بررسی دو رشته از نظر تساوی:یک رشته ترتیبی از کاراکتر ها میباشد.شما میتوانید آن را به شکل زیر به کار برید:
[HTML]If str1 == str2 command[/HTML]
که اگر رشته 1 و رشته 2 برابر بودند command اجرا میشود.
ب)تست وجود فایل:میتوانید بررسی کنید که آیا یک فایل وجود دارد یا نه و در صورت درست بودن شرط فرمان را اجرا میکند.به مثالی که بالا زدم توجه کنید.
همچنین این فرمان (و همچنین نوع قبلی if) میتوانند با NOT همراه شوند.یعنی اگر شرط درست نبود دستور را انجام بده.مثلا:
[HTML]If not exist c:\new.txt ren old.txt new.txt[/HTML]
به این معناست که اگر فایل new.txt موجود نبود نام فایل old را به new تغییر بده.آسون بود نه؟؟؟
ج)بررسی خطا ها:این ها فرمان های پیشرفته ای اند که میخواستم یادتون بدم.همون ارورلول (errorlevel).ممکن است هنگام اجرای یک فایل دستوری یک برنامه رو صدا بزنید.وقتی برنامه رو صدا میزنید فایل دستوری تا هنگام خروج برنامه متوقف میشود و سپس ادامه دستورات اجرا میشوند...
برنامه ها هنگام خروج مقداری را به عنوان کد خطا به سیستم عامل برمیگردانند.اگر این کد 0 باشد یعنی خاتمه طبیعی و اگر 1 باشد یعنی پایان غیر طبیعی یا بروز خطا هنگام خروج است.برای مثال دستورات زیر را در نظر بگیرید:
Call tc.exe
[HTML]If errorlevel 1 echo Exited with an error!!![/HTML]
در خط اول برنامه ای به نام tc (همون توربو سی خودمون!!!) صدا زده میشه.فایل دستوری متوقف میشه و تی سی اجرا میشه و بعد از خروج اگر کد خطا برابر یک باشد برنامه اعلام میکند که با خطا پایان یافته است!!!البته بعضی اوقات کدی بزرگتر از یک نیز ممکن است بازگردانده شود...
تا اینارو هضم کنید مبحث شیرین پردازش انتخاب های کاربر رو آماده میکنم.خوش باشید!!!
-
چند نکته مهم!!!
712:داشتم یه کم مطالعه میکردم که چند تا نکته مهم دیدم و گفتم که بهتره اینجا مطرحشون کنم...
اولین نکته:تفاوت call و اجرای مستقیم برنامه)شاید بگید که چرا مجبوریم برای اجرای برنامه از داخل فایل دستوری از call استفاده کنیم، در صورتی که میشه اسمشو بنویسیم و اجراش کنیم؟الان میگم چرا.به دو دستور زیر توجه کنید:
[HTML]Call c:\tc\tc.exe
C:\tc\tc.exe[/HTML]
اگر از دستور دوم استفاده کنید یعنی مستقیم برنامه رو اجرا کنید، بعد از خاتمه ی برنامه یا به خط فرمان باز میگردید یا اینکه خط فرمان بسته میشه!!!یعنی ادامه فایل دستوری اجرا نمیشه...ولی اگه از call استفاده کنید بعد از پایان برنامه ادامه فایل دستوری اجرا میشود...
دومین نکته:تفاوت بین حروف)در این مورد هم راحت باشید چون خط فرمان به کوچک و بزرگ بودن حروف حساس نیست!!!
سومین نکته:خاتمه فوری)اگه یه بار خدایی نکرده توی حلقه بینهایت افتادید و در گل خفتید!!! کافی است کلید های ctrl و break را فشار دهید!!!
چهارمین نکته:پیغام دلخواه برای pause)اگر دقت کرده باشید پیغامی که پاس نشان میدهد همواره Press any key to continue… است و قابل تغییر هم نیست.اما یک راه یا بهتر بگم ترفند برای این کار هست.با یه مثال توضیح میدم...
فرض کنید دستورات انتهایی فایل قبل از خروج میخواهید پیغام Press any key to exit… را نشان دهید ولی پاس نمیذاره به سادگی این دستورات رو بنویسید:
[HTML]Echo Press any key to exit…
Pause > nul
Exit[/HTML]
اول پیغام شما روی صفحه نمایش داده میشه و بعد پاس اجرا میشه ولی با یه تفاوت و اونم اینه که خروجیش به جای صفحه به nul یعنی هیچی منتقل میشه!!!و هنگامی که کلیدی فشرده میشه خارج میشید...به همین سادگی...
-
712:خوب، میرسیم به مبحث شیرین پردازش انتخاب های کاربر!!!
بعضی وقتا میخواین که توی فایل دستوریتون از کاربر بپرسین که چه کار کنید یا اینکه از اون ها بخواهید کلید خاصی رو فشار بدن.در این مواقع از choice استفاده میکنید.قابل توجه کسایی که از داس استفاده میکنن (مثل خودم) این فرمان در نسخه 6 به بعد موجوده!!!
شکل کلی فرمان اینطوریه:
که arguments میتواند یک یا چند تا از پارامتر های فرمان باشد.اگر شما پارامتر را وارد نکنید به طور پیش فرض دو انتخاب خواهید داشت، یعنی Y و N.یعنی اگه فقط تو فایل بنویسید choice اونم مینویسه [Y,N] که شما باید با y (بله) و یا n (خیر) جواب بدید.اینکه چطور تشخیص بدید کاربر چی انتخاب کرده رو بعد از بررسی پارامتر ها میگم.
پارامتر های فرمان:
/C
اگر بخواهید کاربر به جای این دو حرف حروف دیگری را انتخاب کند از این پارامتر استفاده میشود.مثال زیر را در نظر بگیرید:
این فرمان خروجی زیر را تولید میکند:
/m:
برای نمایش پیغام دلخواه به کار میرود.فرمان قبل را میتوان به این شکل اصلاح کرد:
کد:
Choice /m “Choose a character:” /c ABC
خودتون تست کنید ببینید خروجیش چیه؟؟؟
/t:
اگه بخواید بعد از زمان مشخصی اگه کاربر چیزی وارد نکرد یه کاراکتر انتخاب بشه از این پارامتر استفاده میکنید.البته حتما باید از پارامتر d که پایین میگم استفاده کنید.بعد از توضیح اون یه مثال میزنم...
/d:
انتخاب پیش فرض شما رو مشخص میکنه.این پارامتر و پارامتر t همیشه با هم هستند.یا هر دو یا هیچکدوم...حالا یه مثال:
کد:
Choice /c ABCD /d B /t 10 /m “Enter a character:”
انتخاب هایی که میتونید انجام بدید a, b, c و d هستند.انتخاب پیش فرضمون b هست و اگه بعد از 10 ثانیه چیزی انتخاب نکردید b انتخاب میشه...
حالا چجوری بفهمیم کاربر چی زده؟اینجاست که دستور if و errorlevel به یاری ما میشتابند!!!
این فرمان بعد از اینکه کاربر انتخابش رو انجام داد یه کد خطا برمیگردونه که برای انتخاب ها از چپ به راست به ترتیب از یک شروع میشوند.مثلا اگر دستور آخری که نوشتیم کاربر c رو وارد کنه کد خطای 3 برگردونده میشه...
حالا با یه if میبینیم که کاربر کدوم کلیدو زده؟؟؟
کد:
If errorlevel n command
که کاملا واضحه.البته شما در این حالت میتونین یه دستور رو اجرا کنید ولی اگه برچسب تعریف کنید میشه کارای بیشتری کرد.فایل دستوری زیر رو ببینید.(یه مثال درست و حسابی.سعی کنید اول بفهمین بعد کپی کنین):
کد:
@echo off
Cls
Choice /c cse /m “712:Press C to check disk, S to view system information or E to exit…” /t 10 /d s
If errorlevel 1 goto checkdisk
If errorlevel 2 goto sysinfo
If errorlevel 3 goto end
:checkdisk
Cls
Call chkdsk > c:\chkres.log
Type c:\chkres.log
Echo Result is saved in c:\chkres.log.Press any key to exit…
Pause > nul
Goto end
:sysinfo
Cls
Systeminfo > c:\sysinfo.log
Cls
Type c:\sysinfo.log
Echo Result is saved in C:\sysinfo.log.Press any key to exit…
Pause > nul
Goto end
:end
Cls
Echo Exiting…
Exit
این مثال تقریبا هرچی درس دادم رو تو خودش داره.تا جلسه بعد بای!!!
-
712:این پست میخوام تغییر ورودی رو یادتون بدم، تغییر مسیر خروجی رو که یادتونه؟؟؟اینجا باید به جای < از > استفاده کنید.مثلا اگه تو اون حالت فرمان خروجیش رو به فایل میفرستاد اینجا فرمان ورودیش رو از فایل میخونه.برای مثال یه فایل متنی به اسم inptest.txt ایجاد کنید و توش بنویسید:
البته باید بعدش یه خط خالی بذارید.یعنی یه اینتر هم بزنید.حالا توی کامند پروپت برید و به ریشه ی درایو سی سوییچ کنید.بعد بنویسید:
در اینجا پارامتر های فرمان xcopy به جای صفحه کلید از فایل خونده میشن...
فیلتر ها:
در خط فرمان سه فرمان به نام فیلتر وجود دارند که به بررسی آن ها میپردازیم:
More:
این فرمان ورودی خود را خوانده و هر بار 24 خط آن را (اگر از 24 خط بیشتر باشد) روی صفحه نمایش میدهد.مثال:
کد:
More < c:\inptest.txt
Find:
برای یافتن رشته ای در یک یا چند فایل استفاده میشود.برای مثال فرض کنید در یکی از فایل های درایو D رشته ای شامل Hello world!!! دارید!ولی نمیدانید در کدام فایل است.پس مینویسید:
کد:
Find “Hello world!!!” d:\*.txt
این دستور رشته مورد نظر را در تمامی فایل ها با پسوند txt جستجو میکند.این فرمان نسبت به حروف کوچک و بزرگ حساس است!!!
Sort:
این فیلتر ورودی خود را خوانده و سپس آن را مرتب میکند (پیشفرض بر اساس الفبا) و سپس به خروجی استاندارد یا تعیین شده میبرد.شکل کلی:
کد:
Sort options <input >output
که آپشن ها پارامتر های این فرمان و input ورودی آن و output خروجی آن است.برای مثالفرض کنید فایلی به نام test.txt با محتویات زیر دارید:
کد:
Three
One
Six
Four
Ten
اگر دستور زیر را وارد کنید:
این فایل مرتب شده و در نمایشگر نمایش داده میشه:
کد:
Four
One
Six
Ten
Three
میتوانید از پارامتر /r برای نرتب سازی معکوس نیز استفاده کنید...
-
712:سلام دوستان.امروز میخوام در مورد صفات فایل ها و تغییر آنها براتون توضیح بدم.
توی سیستم عامل داس و ویندوز فایل ها سه صفت مهم برای فایل ها وجود دارد که عبارتند از:
فقط خواندنی (Read only)
فایل های دارای این صفت فقط قابل خواندن اند و محتویات آن ها نمیتواند تغییر کند.بنابراین نمیتوان چیزی به آن ها اضافه کرد یا از آنها حذف کرد...
مخفی (Hidden)
این فایل ها معمولا در لیست دایرکتوری نمایش داده نمیشوند.یعنی وقتی با فرمان dir دایرکتوری را لیست میکنید این فایل ها را نمایش نمیدهد.همچنین ویندوز اکسپلورر نیز در حالت عادی آن ها را نمایش نمیدهد...
سیستمی (System)
فایلی که این صفت را دارد معمولا یک فایل مربوط به سیستم عامل است.این فایل ها مخفی و فقط خواندنی اند و حتی اگر شما حالت نمایش فایل های مخفی را هم در ویندوز اکسپلورر فعال کنید باز نمایش داده نمیشوند...
تغییر صفات فایل
برای تغییر صفات فایل از فرمان خارجی attrib استفاده میشود.روش استفاده:
کد:
attrib filename attributes
filename نام فایل است.اگر شما این فرمان را فقط با نام فایل اجرا کنید صفات فایل را به شما برمیگرداند.به جای attributes باید صفاتی که میخواهید به فایل اختصاص دهید را بنویسید.لیست صفات:
فقط خواندنی r
مخفی h
سیستمی s
برای فعال کردن قبل از حرف مربوط به صفت + و برای غیر فعال کردن - بگذارید.مثلا برای حذف صفت مخفی از فایل hidden.txt باید بنویسید:
یا برای سیستمی کردن آن:
راستی منبع این آموزش ها هم یک کتاب قدیمی به اسم MS-DOS 6.22 به زبان ساده نوشته هربرت شیلد از انتشارات چرتکه چاپ سوم (آبان 74) هستش!!!
-
712:امروز میخوام لوله ها رو که تو پست قبلی قرار بود یاد بدم رو توضیح بدم.لوله ها خروجی یک فرمان رو به عنوان ورودی به فرمان دیگری میفرستند.مثل اینه که بین دو فرمان یک لوله بذارید و خروجی اون ز طریق لوله به ورودی فرمان دیگر میره...
طریقه استفاده:
خروجی فرمان 1 به ورودی فرمان 2 میره.مثال:
خروجی dir که لیست فایل ها و دایرکتوری هاست به جای صفحه نمایش به عنوان ورودی به فیلتر sort میره و بعد از مرتب شدن به صفحه نمایش میره و لیست مرتب نمایش داده میشه...
البته شما به دو فرمان محدود نیستید و میتوانید از هر تعداد فرمان که بخواهید استفاده کنید.یک مثال دیگر:
در ابتدا مثل فرمان قبلی دایرکتوری مرتب میشود اما این بار خروجی به عنوان ورودی به فیلتر more میرود و لیست دایرکتوری اگر از 24 خط بیشتر باشد هر بار 24 خط آن در صفحه نمایش ظاهر شده و برای ادامه باید کلیدی را فشار دهید.مثل اینه که فرمان زیر رو بنویسید:
فعلا"...