مقدمه هر چه فرمان های DOS را بهتر بفهمید ، در سیستم خود ( چه اعلان فرمان و چه شل ) کارایی بیشتری خواهید داشت .
فرمانهای بهتر ، فرمانهای قوی تری هستند که به نوبه خود برنامه های دسته ای قویتر و امکانات بیشتری را در اختیار شما قرار میدهند.
تعیین مسیر ورودی و خروجی بیشتر یوتیلیتی های DOS ورودی را از صفحه کلید دریافت کرده و خروجی را به شکل پیغامهایی به صفحه نمایش ارسال می کنند .
فرمان TIME مثال خوبی در این مورد می باشد: ورودی و خروجی استاندارد بسیاری از یوتیلیتی های DOS خدمات ورودی / خروجی استاندارد را طلب می کنند .
به منظور انجام عملیات ورودی / خروجی استاندارد ، DOS از ابزاری بنام CON ( مخفف Console) برای خواندن و نوشتن استفاده می کنند که معمولابرای صفحه کلید و مونیتور تعریف می شود.
اما این امکان نیز وجود دارد که با استفاده از علامتهای جدول 1 2 ورودی / خروجی را از CON به فایلها یا ابزارهای دیگر هدایت نمایید.
جدول 1 2 : علامتهای قابل استفاده در تعیین مسیر علامت شرح > destination خروجی را به یک فایل یا ابزار خاص هدایت میکند .
در این حالت اطلاعات خروجی روی اطلاعات فایل موجود نوشته می شود.
>> destination خروجی را به یک فایل یا ابزار خاص هدایت می کند .
در این حالت اطلاعات خروجی به اطلاعات موجود در فایل اضافه می شود command 1 \ command 2 خروجی فرمان command 1 ورودی فرمان command 2 می شود.
علامتهای مذکور در جدول 1 2 توسط DOS رزرو شده اند و در نام فایل ها یا دایرکتوریها قابل استفاده نیستند.
مسیر تمام ورودیها / خروجیها را نمی توان تعیین نمود.
به عبارت کاملتر ، تعیین مسیر در مواردی امکان پذیر است که خدمات ورودی / خروجی استاندارد مورد نیاز باشد .
بسیاری از برنامه های کاربردی از تکنیکهای ورودی / خروجی خاص خود استفاده می کنند ( نه استاندارد های DOS ) و در نتیجه عملیات تعیین و تغییر مسیر در آنها قابل اعمال نمی باشد.
علاوه بر این ، مسیر ورودی و خروجی تمام یوتیلیتی های DOS را نیز نمی توان تعیین نمود.
به عنوان مثال ، فرمانهای TYPE و COPY از ورودی استاندارد استفاده نمی کنند ، اما چون برای خواندن از یک فایل یا ابزار طراحی شده اند ، تعیین مسیر ورودی در آنها لازم نیست .
به همین ترتیب ، خروجی فرمان PRINT را نمی توان به یک فایل هدایت نمود، چرا که از ابزار ورودی / خروجی استاندارد استفاده نمی کند.
تنها بخشی از خروجی PRINT که مسیر آن قابل تغییر است پیغام تاییدی است که معمولا در ابزار خروجی استاندارد به نمایش در می آید.
خروجی خطای استاندارد چنانچه یک یوتیلیتی DOS با وضعیت خطایی ( error) مواجه شود ، پیغام خطا را نه به ابزار خروجی استاندارد بلکه به ابزار خروجی خطای استاندارد ارسال می کند (DOS آن را درCON به نمایش در می آورد ) چون عملیات تعیین مسیر فقط روی خروجی استاندارد اثر می گذارد ، نه خروجی خطای استاندارد ، مسیر پیغامهای خطا را نمی توان تعیین نمود .
همان گونه که در اینجا ملاحظه می کنید ، خروجی هر فرمان ممکن است از هر دو نوع مزبور باشد: c:\> DIR BIMAX Volume in drive C is HARD DRIVE Volume Serial Number is 171 D – 78 E 4 Directory of c:\ File not found C : \> اگر مسیر خروجی فرمان فوق را تغییر دهید ، باز هم پیغام خطای زیر به نمایش در می اید : c:\ DIR BIMAX > BIMAX.DIR file nit found c : \> در این بین ، فایل حاوی خروجی هدایت شده BIMAX.DIR فقط حاوی پیغامهای استاندارد خواهد بود : Volume in drive C is HARD DRIVE Volume serial Number ic 171D – 78E4 Directory of c:\ این امر ممکن است همیشه جالب توجه نباشد ، اما دانستن آن باعث افزایش توانایی شما در استفاده از فرمانها می باشد .
به عنوان مثال ، می توانید یک ماکرو DOSKEY بنویسید که وجود یا عدم وجود فایلی را به شما اطلاع دهد: DOSKEY ISFILE = DIR $1 $G NUL فرمان فوق ، ماکرویی بنام ISFILE تعریف می کند که به دنبال مشخصه فایل مورد نظر گشته و خروجی استاندارد را به NUL ( خنثی ) هدایت می کند .
تنها پیغام File not found به نمایش در خواهد آمد.
با تعریف مجدد CON توسط فرمان CTTY میتوانید مسیر تمام ورودیهای صفحه کلید و خروجیهای صفحه نمایش را تغییر دهید.
این تکنیک در فصل 18 شرح داده خواهد شد.
برخی از برنامه ها برای صدور پیغامهای خطا از خروجی استاندارد استفاده می کنند ( CHKDESK یکی از آنهاست ) و برخی دیگر نیز برای صدور پیغامهای استاندارد ، از خروجی خطای استاندارد استفاده می کنند ( MORE یکی از آنهاست ) به عنوان مثال اگر مسیر خروجی CHEKDSK را تغییر دهید ، فرض بر این خواهد بود که می خواهید چهت استناد بخشیدن به مدارک خود یا جای دادن پیغامهای خطا در انها، از پیغامها یک کپی روی کاغذ یا روی یک فایل تهیه کنید.
هدایت خروجی به یک فایل شاید متداول ترین کاربرد ویژگی تعیین مسیر ، ذخیره سازی خروجی استاندارد یک فرمان در یک فایل می باشد .
به عنوان مثال ، با استفاده از فرمان زیر می توانید لیست کامل دایرکتوری دیسک گردان C را در فایلی بنام SAVECDIR ذخیره نمایید: DIR C:\ /S /B > SAVECDIR پارامتر C:\ نشانگر دایرکتوری ریشه ((root است و پارامتر /S باعث می شود تمام ساب دایرکتوریهای آن نیز در لیست مزبور آورده شوند .
پارامتر /B لیست را فشرده می کند .
SAVECDIR یک فایل اسکی (ASCII) خواهد بود که توسط فرمانهای TYPE , EDIT و PRINT می توان آن را دید ، ویرایش نمود و به چاپ رساند.
جانویسی در مقایسه با الصاق اگر مشخصه فایل مورد استفاده ، منحصر به فرد باشد ، علامتهای > و >> یک فایل جدید تشکیل میدهند.
تفاوت بین این دو علامت زمانی مطرح می شود که مشخصه فایل مورد نظر با یک فایل موجود انطباق داشته باشد.
در این صورت هنگام استفاده از > بدون اینکه هیچ هشداری به نمایش درآید ، خروجی جدید جایگزین فایل موجود می گردد در حالیکه در صورت استفاده از >> خروجی جدید به انتهای فایل موجود الصاق می گردد.
علامت > خروجی جدید را بدون هیچ هشداری جایگزین فایل موجود میسازد.
جهت حفظ امنیت بیشتر ، تا وقتی که عمدا نمی خواهید اطلاعاتی را جایگزین یک فایل موجود نمایید ، از >> استفاده کنید.
در فصل 4 نحوه تست وجود فایل و صدور فرمانها بر اساس آن ، شرح داده می شود.
فرض کنیم که می خواهید یک فایل دسته ای بنویسید که فایلی بنام SAVECDIR حاوی لیست کامل دایرکتوریهای دیسک گردانهای C تا E را ایجاد کند.
همچنین مد نظر دارید که این لیست جایگزین نگارش قبلی فایل SAVECDIR گردد .
فایل دسته ای مزبور می تواند محتویات ذیل را دربرداشته باشد: DIR C:\ /S /B > SAVECDIR DIR D:\ /S /B >> SAVECDIR DIR E:\ /S /B >> SAVECDIR اولین فرمان DIR با استفاده از > روی نگارشهای قبلی فایل SAVECDIR می نویسد .
اما دو فرمان بعدی ، جهت الصاق خروجی خود به فایل تازه ایجاد شده ، باید از >> استفاده کنند.
اولین فرمان DIR با استفاده از > روی نگارشهای قبلی فایل SAVECDIR می نویسد .
تعیین مسیر ورودی / خروجی ابزارها با استفاده از نامهای مذکور در جدول 2 ـ 3 ، می توانید ورودی / خروجی استاندارد رابه ابزارهایی هدایت نمایید .
به عنوان مثال ، فرمان زیر لیست کامل دایرکتوری دیسک گردان C: را به چاپ میرساند: DIR C:\ /S /B > PRN جدول 2 ـ 2 : نام ابزارها نام شرح LPT1 تا LPT3 چاپگرهای خطی ( موازی ) 1 تا 3 PRN مثل LPT1 COM1 تا COM4 درگاههای ارتباطات ( سریال ) 1 تا 4 AUX درگاه کمکی CON کنسول کاربر : صفحه کلید برای ورودی و مونتیور برای خروجی ( مگر اینکه توسط فرمان CTTY به نحو دیگری تعریف شده باشد) NUL خنثی ( داده ها نادیده گرفته می شوند ) نام ابزارهای مذکور در جدول 2 ـ 2 توسط DOS رزور شده اند و در نامهایی که ایجاد می کنید قابل استفاده نیستند.
LPT1 یا PRN چاپگر موازی استاندارد را مشخص می کند که DOS بطور اتوماتیک تمام خروجیهای چاپی را به آن هدایت می کند ، مگر این که غیر از این مشخص شده باشد .
این چاپگر ، چاپگر پیش گزیده فرمان PRINT و کلید Printscreen است .
در فصل 20 نحوه هدایت داده های ارسال شده برای چاپگر موازی به ابزارهای دیگر شرح داده می شود.
برخی ناسازگاریهای چاپگرها چاپگرهای PostScript به ابزارهای ویژه ای نیاز دارند و DOS قادر به چاپ در حالت معمولی آنها نیست .
اما بیشتر این چاپگر ها را میتوان به نحوی تنظیم نمود تا یک چاپگر موازی استاندارد ( مانند اپسون MX80 ) جلوه بدهد که DOS بتواند از آن استفاده کند.
NUL: مسیری بدون مقصد گاهی اوقات استفاده از ابزار NUL به منظور حذف خروجی یک فرمان ممکن است سودمند باشد ، زیرا خروجی هدایت شده به NUL ناپدید می گردد.
به عنوان مثال ، فرمان زیر فقط در صوت یافته نشدن فایل ، پیغامی را به نمایش در می آورد : DIR CASEY.
TXT > NUL استفاده از چنین تکنیکهایی در ماکروی DOSKEY یا فایلهای دسته ای جهت حذف پیغامهایی که یک کاربر بی تجربه آمادگی مواجه شدن با آنها را ندارد ، سودمند می باشد .
تعیین مسیر ورودی علامت SORT یکی از اهداف تغییر مسیر ورودیها ، اتوماتیک ساختن فرمانها به نحوی است که نیاز کمتری به ورودی کاربر داشته باشند .
به عنوان مثال اگر فایل C:\DOS\CR حاوی یک خط خالی ( که با فشردن کلید ENTER ایجادشده ) باشد ، با استفاده از آن میتوان فرمان TIME را به شکل اتوماتیک درآورد : TIME بدین ترتیب وقتی DOS ورودی استانداردی بخواهد ، به جای صفحه کلید از فایل CR می خواند .
در نتیجه پس از به نمایش درآمد ساعت فعلی ، کار TIME به پایان رسیده و همان ساعت حفظ می شود .
به همین ترتیب با استفاده از CR می توانید فرمانهای DATE و PRINT را به شکل اتوماتیکی درآورید .
در صورت استفاده از CR به همراه PRINT تابع چاپ به روی ابزار چاپ پیش گزیده (PRN) تنظیم می شود.
در فایلهای دسته ای ، اغلب مشخص کردن نام مسیر کامل در عملیات تعیین مسیر از اهمیت زیادی برخوردار است تا از هر دیسک گردان و دایرکتوری بتوان آنها را اجرا نمود.
اتوماتیک ساختن فرمان ساده ای چون TIME یا DATE ممکن است به ظاهر دردسرش بیشتر از منفعتش باشد، اما باعث می شود که در اجرای فایلهای دسته ای و ماکروهای DOSKEY نیاز کمتری به دخالت کاربر باشد .
با حفظ دقت بیشتر ، می توانید فرمانهای پیچیده تری که به یک سری ورودی از صفحه کلید نیاز دارند را به شکل اتوماتیک درآورید .
به عنوان مثال ، عملیات استاندارد FORMAT به سه ورودی نیاز دارد ( البته اگر از سوئیچ /V استفاده نکنید ) که در مثال زیر در کروشه ای مشخص شده اند : C:\FORMAT A: Insert new diskett for drive A: And press ENTER when ready ...[Enter] Checking existing disk format.
Saving UNFORMAT information.
Verifying 1.44M Format Complete.
Volumelabel ( 11 characters .
ENTER for none ) ?
[Enter] 1457664 bytes total disk space 1457664 bytes available on disk 512 bytation units available on disk.
2847 allocation units available on disk volume Serial Number is 1035 – 0DE3 Format another (Y/N) ?
[n] C:\> با ایجاد یک فایل ورودی حاوی دو برگشت خطی (carriage return) و یک N .
می توانید کل روند فوق را به شکل اتوماتیک به انجام رسانید.
به عنوان مثال ، اگر فایل FMTIN حاوی پاسخهای فرمان FORMAT باشد ، فرمان اتوماتیک شده را میتوانید بدین شکل اجرا نمایید: FORMAT A: بدین ترتیب ، هر وقت DOS ورودی را از صفحه کلید بخواهد ، یک خط از این فایل را به ترتیب می خواند .
اتوماتیک کردن فرمانهایی مانند FORMAT باعث نادیده گرفتن جنبه های امنیتی می شود .
بنابراین باید این تکنیکها را با احتیاط کافی استفاده نمایید و آنها را در اختیار کاربران بی تجربه قرار ندهید .
همچنین اگر وضعیت خطایی پیش بیاید که به پاسخ غیر معمولی نیاز داشته باشد ، برنامه احتمالا متوقف می شود تا ورودی مناسبی را از فایل دیسک دریافت کند .
در این حالت ، با فشردن کلیدهای Ctrl – Break می توان به اعلان فرمان برگشت .
لوله کشی در عملیات لوله کشی (Piping) داده ها از یک فرمان و با استفاده از یک فایل موقتی بنام لوله (pipe) به فرمان بعدی ارائه داده می شوند.
خروجی استاندارد فرمان اول ، ورودی استاندارد فرمان دوم می شود.
ویژگی لوله کشی بیشتر در فیلترهای DOS مورد استفاده قرار میگیرد و در بخش بعدی که به توضیح فیلترها می پردازیم ، مثالهای متعددی از لوله کشی را ملاحظه خواهید نمود.
قبلا نحوه اتوماتیک کردن فرمان TIME یا DATE با استفاده از یک فایل ورودی استاندارد حاوی برگشت خطی (Carriage return) را فرا گرفتید .
این عمل را با استفاده از ویژگی لوله کشی نیز می توانید انجام دهید : TYPE C:\DOS\CR | TIME فرمان TYPE محتویات فایل CR را به لوله فرستاده و فرمان TIME آن را از لوله می خواند .
بنابراین پس از اجرای TIME گویی کلید Enter بطور اتوماتیک فشرده می شود.
لوله کشی نیز مانند اشکال دیگر تعیین مسیر ، فقط روی ورودی / خروجی استاندارد اثر دارد.
استفاده از ECHO برای اتوماتیک کردن فرمانها در عملیات لوله کشی ، روش مناسب تر انتقال یک مقدار به فرمان مورد نظر ، استفاده از فرمان ECHO به جای TYPE می باشد .
بدین ترتیب نیازی به تشکیل یک فایل پاسخ نمی باشد.
به عنوان مثال ، برای ارسال یک Y به فرمان *.* DEL ( در پاسخ به سئوال Are you sure?) می توان فرمان زیر را وارد نمود: ECHO Y | DEL *.* اگر به دنبال فرمان ECHO بدون هیچ فاصله ای یک نقطه تایپ شود ، برگشت خطی (carriage return) ایجاد می گردد که میتوان آن را جهت اتوماتیک کردن فرمانهای TIME و DATE به کار برد.
بدین ترتیب روش دیگر اتوماتیک کردن TIME بدین شکل است : ECHO .
| TIME این روش ، ساده ترین روش اتوماتیک کردن فرمانهایی است که به یک پاسخ نیاز دارند .
اما چون ECHO فقط میتواند یک مقدار را ارائه بدهد، برای فرمانهایی که به چند ورودی نیاز دارند ( مانند FORMAT ) قابل استفاده نمی باشد.
فایلهای موقتی در روند لوله کشی DOS در روند لوله کشی باید دو فایل موقتی به نامهای ABOABOBH و ABOABOBN تشکیل دهد.
پس از اتمام عملیات این فرمان یا پس از متوقف نمودن آن توسط کلیدهای ctrl – Break این فایلهای موقتی به طور اتوماتیک پاک می شوند.
اما اگر حین انجام عملیات ، کامپیوتر را ریست و یا خاموش کنید ، این فایلها روی دیسک سخت باقی می مانند که البته به سادگی میتوانید آنها را پاک کنید.
DOS فایلهای موقتی را در دایرکتوری فعلی می نویسد ، مگر این که با وارد کردن فرمانی مانند مثال زیر، یک دایرکتوری موقتی استانداردی را مشخص نموده باشید: SET TEMP = path اگر به دلیل پر بودن دیسک ، DOS نتواند فایلهای موقتی را روی آن بنویسد ، عملیات لوله کشی صورت نمی گیرد .
فیلترهای DOS از سه یوتیلیتی DOS به عنوان فیلتر (filter) نام برده می شود یعنی برنامه ای که داده هایی را از ابزار ورودی استاندار خوانده ، آنها را به نحوی پردازش کرده و سپس در ابزار خروجی استاندارد مینویسد.
سه فیلتر DOS عبارتند از : MORE که خروجی استاندارد را به شکل صفحه به صفحه نمایش میدهد SORT خطوط را مرتب می کند و FIND که خطوط جاری رشته های متنی خاصی را می یابد.
شناسایی خطوط سه فیلتر مزبور روی خطوط داده ها که توسط برگشتهای خطی (carriage return) متمایز شده اند، عمل می کنند .
در یک فایل اسکی مانند فایلهای دسته ای یا CONFIG>SYS خطوط مشخص هستند.
اما بسیاری از واژه پردازها فقط وقتی برگشت خطی را ذخیره می کنند که در انتهای پاراگراف ، کلید Enter را فشار دهید.
گر چه این واژه پردازها ، پاراگرافها را در چند خط به نمایش درآورده و چاپ می کنند، اما DOS هر یک از این پاراگرافها را به عنوان یک خط می شناسد .
تنها استثنا زمانی است که واژه برداز مزبور ، فایل متنی را به جای فرمت معمولی خود با فرمت اسکی ذخیره کند.
بنابراین هنگام به کارگیری فیلترهای DOS برای فایلهای ایجاد شده توسط واژه پردازها حتما باید از فمرت فایل ذخیره شده اطلاع داشته باشید.
خلاصه ای در مورد MORE فرمان MORE در ساده ترین شکل خود فقط یک کلمه MORE است که باعث می شود DOS ورودی را از صفحه کلید بخواند و روی مونیتور به نمایش درآورد ، و هر بار که یک صفحه از اطلاعات به نمایش در می آید ، توقف کرده و برای ادامه منتظر می شود تا شما کلیدی را فشار دهید.
اما فرمان MORE تقریبا همیشه به همراه عملیات تعیین مسیر یا لوله کشی مورد استفاده قرار میگیرد.
قبل از اینکه فرمان EDIT در DOS ارائه شود ، برای نمایش صفحه به صفحه فایلها اغلب از MORE استفاده می شد، اما اینک EDIT امکان مرور فایلها را نیز فراهم ساخته و برای بررسی فایلها بسیار مناسب تر می باشد .
اگر بنا به دلیلی خواستید فایلی را به جای EDIT با MORE مشاهده کنید ، ورودی را با فرمانی مانند مثال زیر هدایت کنید: MORE هنگام کار با فایل حاوی خطوطی بزرگتر از عرض صفحه نمایش MORE خطوط را به نحوی فرمت بندی می کند که تمام داده ها قابل رویت باشند.
فرمان مثال زیر ، لیست تمام دایرکتوریها و فایلهای دیسک گردان جاری از صفحه به صفحه نشان می دهد : TREE \ /F | MORE خلاصه ای در مورد SORT دلیل اصلی ارائه SORT مرتب کردن خروجی فرمان DIR بوده است .
اما اینک گزینه های /O فرمان DIR عملیات مرتب سازی اطلاعات دایرکتوری را با کیفیت بهتری انجام میدهند .
البته SORT هنوز هم برای فایلهای ساده مانند یک ایندکس دارای یک سطح ورودی ، مناسب می باشد اما برای انجام عملیات پیچیده باید از برنامه های مرتب سازی کاملتر و پیچیده تری استفاده نمود.
شکل 1 ـ 2 نحوه به کارگیری فرمان SORT را نشان می دهد.
اگر کلمه SORT را بدون هیچ پارامتر دیگری تایپ کنید ، ورودی را ابزار ورودی استاندارد خوانده ، پس از مرتب ساختن خطوط ، آنها را در ابزار خروجی استاندارد به نمایش در می آورد.
در قسمت بعدی نحوه وارد کردن داده ها از طریق صفحه کلید برای این منظور شرح داده شده است .
وارد کردن فایلها از CON بیشتر یوتیلیتی های DOS که ورودی را از CON می خوانند ، انتظار فشرده شدن یک کلید ( مانند Y یا N) و یا یک خط که با کلید Enter به پایان رسیده را دارند.
اما اگر ورودی را به یک فایل ذخیره شده هدایت نکنید .
فیلترهای DOS انتظار دارند که فایل کاملی از طریق CON وارد شود .
علاوه بر این ، میتوانید از CON به عنوان منبعی برای فرمان COPY استفاده کنید ( این فرمان نیز به یک فایل نیاز دارد ) هر فایل متشکل از یک یا چند خط است که با یک علامت انتهای فایل ( هگز 1A که در صفحه مونیتور به شکل ^Z نشان داده می شود ) به انتها می رسد.
قبل از ارائه EDIT بیشتر کاربران با تجربه DOS نحوه وارد کردن فایل از طریق CON را می دانستند که روش سریعی برای ایجاد فایلهای اسکی کوتاه مانند فایلهای دسته ای ساده بود .
اما این روش چندان مطلوب نبود، زیرا امکان برگشت به خطوط وارد شده وجود نداشته و برای اصلاح آنها می بایست از ابتدا کل فایل را بررسی شود.
اینک که EDIT در اختیار شما قرار گرفته است ، هرگز مجبور نیستید که فایلها را از طریق CON وارد کنید ، اما اگر EDIT را نصب نکرده اید و یا ترجیح می دهید که از روش قبلی استفاده کنید ، میتوانید طبق دستورالعمل ذیل عمل نمایید: 1 ـ پس از وارد کردن فرمان FIND, SORT 2 – هر خط را با دقت تایپ کنید و قبل از فشردن کلید Enter بار دیگر آن راکنترل و در صورت لزوم اصلاح نمایید.
پس از فشردن کلید Enter نمی توانید به خط قبل بازگردید ( MORE و FIND پردازش خط را بلافاصله آغاز کرده و سپس منتظر خط بعدی می شوند .
بنابراین نتیجه ممکن است کمی عجیب و غیرمنتظره باشد) 3 ـ پس ازوارد کردن آخرین خط کلید ها F6 یا Ctrl – z و سپس کلید Enter را بفشارید تا علامت انتهای فایل ثبت گردد ( در مورد FIND و SORT لازم است که علامت انتهای فایل در ابتدای یک خط جدید باشد) بدین ترتیب DOS پردازش این فایل را آغاز می کند.
SORT داده های اسکی را مرتب کرده و نتایج را به نمایش در می آورد.
شکل فرمان : SORT [/R] [ /+n] [ destination] پارامترها و سوییچها: source فایل یا ابزار حاوی داده هایی را مشخص میکند که می خواهید مرتب کنید.
پیش گزیده CON است که ورودی را از صفحه کلید می پذیرد تا این که Ctrl-z تایپ شود.
Deatination فایل یا ابزاری را مشخص می کند که می خواهید داده های مرتب شده را به آن ارسال نمایید .
پیش گزیده CON است که داده های مرتب شده را روی مونیتور به نمایش در می اورد.
/R عملیات مرتب سازی به روش معکوس را انجام میدهد /+n عملیات مرتب سازی را از ستون n آغاز می کند ، پیش گزیده ستون 1 است .
شکل 1 ـ 2 : شکل فرمان SORT تعیین مسیر ورودی / خروجی SORT بیشتر اوقات لازم است ورودی SORT را به فایلی هدایت نمود و یا با استفاده از ویژگی لوله کشی ، ورودی را از فرمان قبلی دریافت کرد.
به عنوان مثال ، برای مرتب ساختن فایلی به نام INDEX1 و نمایش صفحه به صفحه خروجی ، می توان از فرمان زیر استفاده نمود: SORT در سیستم اطلاعات کمکی DOS ذکر شده که نام فایل ورودی را بدون استفاده از ویژگی تعیین مسیر می توان مشخص نمود ، اما این مسئله صحت ندارد .
برای خواندن داده های SORT از یک فایل ورودی، باید علامت برای ذخیره کردن خروجی فرمان فوق در فایلی بنام INDEX2 ( به جای نمایش آن روی مونیتور) میتوانید فرمان زیر را وارد کنید: SORT INDEX2 ترتیب مقایسه در SORT ترتیب مقایسه SORT توسط صفحه کد جاری معین می گردد .
جدول 3 ـ 2 ترتیب مقایسه کلیدهای صفحه کلید استاندارد 101 کلیدی را با استفاده از صفحه کد انگلیسی نشان میدهد ( ابتدا ستون اول را تا پایین بخوانید ، سپس ستون دوم و به همین ترتیب آخر ) SORT کوچک و بزرگ بودن حروف را نادیده می گیرد.
محدودیهای SORT متاسفانه ، در SORT محدودیتهای ذیل وجود دارد: SORT فقط عملیات مرتب سازی حرفی عددی را انجام می دهد که هنگام مرتب نمودن مقادیر عددی نتایج نامطلوبی حاصل می گردد.
SORT نمی تواند فیلدهای جداشده توسط کاما یا تب (tab) را که قالب مورد استفاده در بانکهای اطلاعاتی می باشد، تشخیص دهد.
هر خط فایل به عنوان یک رکورد جداگانه در نظر گرفته می شود و هیچ راهی برای شناسایی رکوردهای چند خطی وجود ندارد.
SORT تمام داده ها از اولین ستون تا انتهای خط را به عنوان کلید مرتب سازی مورد استفاده قرار میدهد.
به عبارت دیگر نمی توان طول کلید مرتب سازی را محدود نموده و یا از کلیدهای مرتب سازی اولیه و ثانویه استفاده نمود.
چرا نمی توان عملیات مرتب سازی دو کلیدی انجام داد؟
نکته آخر به بحث بیشتری نیاز دارد، چرا که ممکن است فکر کنید که می توانید با مرتب نمودن ابتدا کلید ثانویه و سپس کلید اولیه ، عملیات مرتب سازی دو کلیدی انجام دهید.
اما یک مثال ساده نشان میدهد که چرا چنین تکنیکی فقط بطور اتفاقی نتیجه خواهد داشت .
فرض کنیم که رکوردهایی از نام و آدرس دارید که می خواهید آنها را از روی نام و نامهای مشابه را نیز از روی شهر مرتب کنید .
مثالی از رکوردهای مرتب شده بر اساس شهر در اینجا آورده شده است : GRAND RAPIDS , MI 45 PINE ST MARY JONES LAS VEGAS , NC 2314 FIR ST PETER ADAMS PITTSBURGH , PA 316 LOCUST ST MARY JONES SILVER SPRING .
MD 16 FOREST RD PETER ADAMS TULSA .
OK 5064 ELM ST PETER ADAMS حال اگر بتوانید عملیات مرتب سازی را فقط از ستون 1 تا 20 انجام دهید ، نتیجه مطلوب خواهد بود.
LAS VAGAS , NV 2314 FIR ST PETER ADAMS SILVER SPRING .
OK 5064 ELM ST PETER ADAMS GRAND RAPIDS , MI 45 PINE ST MARY JONES PITTSBURGH , PA 316 LOCUST ST MARY JONES اما چون SORT در ستون 20 متوقف نمی شود ، چنین نتیجه ای حاصل نمی گردد .
بنابراین در آخرین عملیات مرتب سازی ، رکوردها از روی نام ، و نامهای مشابه از روی آدرس خیابان مرتب می شوند: SILVER SPRING .
MD 16 FOREST RD PETER ADAMS LAS VAGAS , NV 2314 FIR ST PETER ADAMS TULSA .
OK 5064 ELM ST PETER ADAMS PITTSBURGH , PA 316 LOCUST ST MARY JONES GRAND RAPIDS , MI 45 PINE ST MARY JONES بنابراین هیچ راهی برای استفاده از SORT جهت مرتب ساختن رکوردها به ترتیب از روی نام و شهر وجود ندارد.
استفاده از برنامه های مرتب سازی دیگر همان گونه که قبلا ذکر کردیم ، SORT برای عملیات مرتب سازی کوچک و ساده مناسب بوده و در موارد پیچیده تر باید ازبرنامه های مرتب سازی دیگری استفاده نمود.
شما نیز ممکن است قبلا با یوتیلیتی مرتب سازی دیگری کار کرده باشید که نیازتان را بهتر رفت کرده باشد .
تمام واژه پرازهای سرشناس ، امکانات مرتب سازی را در خود جای می دهند ، بخصوص wordperfect که ویژگیهای بسیار قابل توجهی دارد.
در بیشتر موارد میتوان از ویژگی مرتب سازی واژه پردازها برای مرتب نمودن فایلهای مطابق با فرمت معمول آنها و یا فرمت اسکی استفاده نمود .
تمام برنامه های مدیریت اطلاعاتی (database management) و صفحه گسترده ها (spreadsheet) قابلیت مرتب سازی بانکهای اطلاعاتی و کاربرگهای خود را دارند، به عبارت دیگر از این ویژگی آنها برای فایلهای مستقل دیگر نمیتوان استفاده نمود.
خلاصه ای در مورد FIND فرمان FIND که شکل کاربردی آن در شکل 2 – 2 نشان داده شده است ، میتواند در یافتن خطوطی از یک فایل یا خروجی فرمان به شما کمک کند.
با به کارگری این فرمان به همراه فرمان DIR می توانید فایلهایی را بیابید که با یک نام فایل کلی انطباق ندارند.
یافتن خطوط فرض کنیم که نام فایل حاوی نامه ای در مورد کامپکت دیسک معیوب را به خاطر نمی آورید .
در دایرکتوری جاری سه فایل وجود دارد که ممکن است حاوی این نامه باشند: DISCLET و CDRETURN و CDCOMP با صدور فرمان زیر میتوانید بفهمید که کدامیک از فایلهای مزبور حاوی عبارت (compact disk) هستند: C: \ > FIND "compact disc” /I DISCLET CDRET CDCOMT …… C:\DISCLET …….C:\CDRET I have just erceived the enclosed compact disk, opened it , and listened to it only once.
Unfortunately , it skips in several places .
I am returning it to rake advantage of your "Full Replacement " guarantee .
Over the last few years , H have purchased more than 100 compact discs from your service and this is the first problem I have ever encountered.
…… CCDCOMP It will be some time before I can afford to add a CD ROM drive .
At the present , H have two high – dinsity diskette drives (one of each) and a 40 M hard disk .
By the time I can afford a compact disc_style drive , maybe they’ll be able to write ad well ad read.
Wouldm’n that be great!
FIND در فایل (ها) به دنبال رشته متنی خاصی می گردد شکل فرمان : FIND [/V] [/C] [/N] [ /I] “string " [filespec..] پارامترها و سوییچها “string” گروهی از کاراکترها را مشخص می کند که می خواهید به دنبال آنها بگردید.
توجه داشته باشید که دو علامت گیومه الزامی است .
filespec فایلی را که در آن جستجو باید صورت گیرد، مشخص می کند.
/V تمام خطوطی که حاوی رشته مشخص شده نیستند را نشان میدهد.
/C فقط تعداد خطوط حاوی رشته مشخص شده را نشان میدهد /N شماره ها را نیز در نمایش جای میدهد.
/I از حالت کوچک و بزرگ بودن حروف چشم پوشی می کند.
نکته : اگر filespec را حذف کنید ، FIND ورودی را از منبع ورودی استاندارد DOS می گیرد که معمولا صفحه کلید یا یک لوله (PIPE) است .
شکل 2 ـ 2 : شکل فرمان FIND به خاطر داشته ابشید در متنهایی مانند مثال فوق ، هر پاراگراف بهعنوان یک خط در نظر گرفته می شود ، بنابراین هر پاراگراف حاوی رشته متنی مشخص شده به نمایش در می آید.
FIND پاراگرافهای بلند را به خطوط کوتاهتری در صحفه نمایش می شکند.
در مثال فوق ملاحظه می کنید که در DISCLET عبارت “compact disc” وجود ندارد.
اما دو فایل دیگر این عبارت را در خود دارند که البته از متن آنها معلوم میشود که کدام نامه مورد نظر است.
هنگان انجام چنین جستجوهایی بهتر است که از سوییچ /I استفاده کنید تا باچشم پوشی کردن از حالت کوچک و بزرگ بودن حروف ، عرابتهایی مانند “compact disc” و “compact Disc” نیز یافته شوند.
جستجوی متنی در تمام فایلها متاسفانه در FIND امکان استفاده از مشخصه فایل کلی وجود ندارد ، بنابراین جستجوی یک رشته متنی خاص در تمام فایلهای یک دایرکتوری مشکل است .
همچنین جستجوی فایلهای DOS یا TXT ( یا هر چیز دیگر ) نیز به سادگی صورت نمی گیرد .
نکته دیگر این که چون هر فرمان به 127 کاراکتر محدود است ، احتمالا نمی توانید تمام مشخصه فایلها را در یک فرمان جای دهید .
اما امیدوار باشید ، در فصل 4 نحوه انجام این امر به وسیله ترکیب فرمان FIND و DIR شرح داده می شود.
یافتن خطوطی در خروجی فرمان یکی از کاربردهای متداول FIND انتخاب خطوط خاصی از خروجی فرمان می باشد.
به عنوان مثال ، فرض کنیم که می خواهید ساعت و تاریخ فعلی را بدون دیدن بقیه خروجی فرمان TIME یا DATE به نمایش درآورید.
برای این منظور می توانیدفرمانهای زیر را وارد کنید: C:\ > ECHO .
| TIME | FIND “Current” Current time is 7:31:30.18a C:\> C:> ECHO .
| DATE | FIND “ currnt” Current date is Tue 10-01-1991 C:\> این تکنیک کاربردهای بسیار دیگری نیز دارد.
برای دیدن مقدار فضای آزاد موجود در دیسک :