صفحه 4 از 18 نخستنخست 1234567814 ... آخرینآخرین
نمایش نتایج: از شماره 31 تا 40 , از مجموع 173

موضوع: دستورات فایلهای Batch

  1. #31
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    نقل قول نوشته اصلی توسط سهند نمایش پست ها
    1
    ...اگر بخواهیم که فایل بچ بفهمد که به ترتیب پوشه های دیگری هم هستند که به وقتش اونا رو هم اجرا کنه باید به ترتیب در سطر سوم و چهارم هم بهش این دستور رو بدهیم که فایلها کجا هستند منتها با این تفاوت که بجایش Set WorkDir=xxx بذاریم
    سهند عزیز
    نام متغیر برای هر سطر باید متفاوت باشد فرضا" اگر سطر اول عبارت Set WorkDir داریم درسط دوم نباید کلمه WorkDir
    باشد بلکه بجایش باید هر عبارتی غیر از این کلمه قرار بدهیم مثلا" set XXX و یا set BB و یا set Sahand

    کلمه ای که بعد از دستور set نوشته میشود متغیر است.
    اگر در یک فایل Batch فرضا" 10 تا متغیر تعریف کرده باشیم ، همه این ده متغیر ها باید نامی متفاوت داشته باشند.
    نباید نام متغیر ها مثل هم باشد.

    اگر نام همه متغیر ها را مثل هم بنویسی ، فایل Batch فقط آخرین متغیر را اجرا خواهد کرد.

    [SIGPIC][/SIGPIC]

  2. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  3. #32
    کاربر فعال
    یاد بگیریم وبه دیگران هم یاد بدیم
    تاریخ عضویت
    Nov 2013
    محل سکونت
    تبریز
    نوشته ها
    617
    تشکر تشکر کرده 
    1,591
    تشکر تشکر شده 
    1,930
    تشکر شده در
    617 پست
    قدرت امتیاز دهی
    6073
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    استاد اگر بخواهیم یک فایل رجیستری مربوط به تنظیمات یک برنامه رو توسط فایل بچ اجرا کنیم که بصورت مخفی باشد دستور را باید به چه شکلی بنویسیم

  4. 4 کاربر مقابل از سهند عزیز به خاطر این پست مفید تشکر کرده اند.


  5. #33
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    با فرض اینکه شما فایلی با نام xxx.reg داشته باشید ، با اجرای دستور زیر فایل فوق بصورت مخفی به رجستری اضافه خواهد شد:

    کد:
    regedit /s xxx.reg

    [SIGPIC][/SIGPIC]

  6. 4 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  7. #34
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    نکاتی مفید در رابطه با دستور ECHO
    ===================

    قبلا" دیدیم که توسط این دستور میتوانیم پیغامی را به کاربر نشان دهیم.
    فرضا" دستور ECHO Hello My Friend عبارت Hello My Friend را در صفحه خط فرمان نشان خواهد داد.

    ما میتوانیم کاری کنیم که پیغام ما عوض اینکه در صفحه خط فرمان نشان داده شود در یک فایل متنی در محلی که
    میخواهیم نوشته شود.
    برای مثال دستور زیر را نوشته و اجرا کنید:

    ECHO Hello My Friend >> C:\ABC.txt

    بعد از اجرای این دستور اگر به روت درایو C بروید خواهید دید که در آن جا فایلی بنام ABC.txt درست شده که اگر این
    فایل را با Notepad باز کنید خواهید دید که در داخلش پیغام بالا ( یعنی Hello My Friend ) تایپ شده است.

    از نظر من این خاصیت خیلی بدرد خور است . برای درک بهتر به مثال زیر توجه کنید:
    فرض کنیم که شما یک فایل Batch درست کرده اید تا یک برنامه را بطور مخفی نصب کند. و باز فرض میکنیم که لازم
    است که در انتهای کار یک فایل رجستری بنام ABC.reg هم بصورت مخفی اجرا شود تا برنامه اکتیو گردد.

    فرض سوم این است که شما بهر علتی (مثلا" مخفی کاری) ،نمیخواهید فایل ABC.reg را کنار فایل Batch قرار دهید.

    خب اشکالی ندارد با نوشتن دستوراتی در فایل Batch ، خود فایل Batch میتواند فایل ABC.reg را هم درست کرده و
    هم اجرا کند.

    مثال : میخواهیم که فایل Batch در حین اجرا یک فایل رجستری با نام ABC.reg و با محتوای زیر ، در روت درایو C
    ساخته و سپس آن را بطور مخفیانه اجرا کند:

    کد:
    Windows Registry Editor Version 5.00 
      
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip] 
    "DisplayIcon"="C:\\Program Files\\7-Zip\\7zFM.exe" 
    "DisplayName"="7-Zip 9.25 alpha" 
    "NoModify"=dword:00000001 
    "NoRepair"=dword:00000001 
    "UninstallString"="C:\\Program Files\\7-Zip\\Uninstall.exe"
    برای این کار دستورات زیر را اجرا میکنیم:

    کد:
    @ECHO OFF
    ECHO Windows Registry Editor Version 5.00 >> C:\ABC.reg
    ECHO.  >> C:\ABC.reg
    ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip] >> C:\ABC.reg
    ECHO "DisplayIcon"="C:\\Program Files\\7-Zip\\7zFM.exe" >> C:\ABC.reg
    ECHO "DisplayName"="7-Zip 9.25 alpha" >> C:\ABC.reg
    ECHO "NoModify"=dword:00000001 >> C:\ABC.reg
    ECHO "NoRepair"=dword:00000001 >> C:\ABC.reg
    ECHO "UninstallString"="C:\\Program Files\\7-Zip\\Uninstall.exe" >> C:\ABC.reg
    
    regedit /s C:\ABC.reg
    حالا شما برای امتحان فقط سطر آخر دستور بالا را ننوشته و فایل Batch را اجرا کنید.
    حالا اگر به روت درایو C بروید خواهید دید که در آنجا فایل رجستری ای با نام ABC.reg درست شده است.

    اگر مختصری به دستورات دقت کنید متوجه خواهید شد که این کار چگونه انجام شده

    تا بعد.

    [SIGPIC][/SIGPIC]

  8. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  9. #35
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    در جلسه قبل مثال هائی را دیدیم که در آن ها از علایم << استفاده کرده بودیم.
    در این قسمت از بحث طرز کار علامت < و تفاوت آن را با علایم << بررسی میکنیم.

    این دو نوع علامت و برخی علایم دیگر را در اصطلاح کامپیوتر Redirection Operators می نامند.

    کامپیوتر در حالت کار نرمال ، یک تنظیمات اولیه دارد.برای مثال اگر ما در داخل ویندوز برنامه Microsoft Word را باز کرده
    و سپس در کیبورد کلید A را فشار دهیم ، تنظیمات ویندوز به ویندوز میگوید که بعد از فشرده شدن کلید A در کیبورد،
    علامت A را در مانیتور و روی صفحه برنامه Microsoft Word نشان دهد.
    و یا اگر ما دستور ECHO Hello My Friend را در یک فایل Batch نوشته و آن را اجرا کنیم ، استاندارد ویندوز (تنظیمات
    اولیه ویندوز ) به سیستم میگوید که پس از اجرای این دستور عبارت Hello My Friend در مانیتور و داخل صفحه خط
    فرمان نشان داده شود.
    و مثال دیگر اینکه اگر ما یک پرینتر داشته باشیم و فرضا" در برنامه Microsoft Word بعد از تایپ عباراتی در منوی برنامه
    روی گزینه Print کلیک کنیم ، تنظیمات پیشفرض ویندوز به سیستم فرمان میدهد که پرینتر را اجرا کرده و محتویات
    فایل موجود را Print کند.

    منظور اینکه یک سری کار ها در ویندوز بصورت پیشفرض و از پیش تعیین شده هستند که ما اکثرا" با آن ها سر و کار
    داریم.
    ولی میشود کاری کنیم که ویندوز عوض کار های پیشفرض ، کار هایی را انجام دهد که ما میخواهیم.

    مثال این کار را در جلسه قبل مشاهده کردید که بنده برای مفهوم تر شدن مطلب بنوعی دیگر در اینجا تکرار میکنم.

    همانطور که در چندسطر قبل گفتم ، وقتی که ما دستور دستور ECHO Hello My Friend را در یک فایل Batch نوشته
    و آن را اجرا کنیم ، تنظیمات اولیه ویندوز به سیستم میگوید که پس از اجرای این دستور عبارت Hello My Friend را در
    مانیتور و داخل صفحه خط فرمان نشان دهد.

    حال دستور فوق را به شکل زیر تغییر دهید:

    ECHO Hello My Friend >> C:\ABC.txt

    با اجرای این دستور ، دیگر ویندوز کار استاندارد و از پیش تعیین شده خود را انجام نخواهد داد یعنی عبارت مورد نظر
    را در صغحه خط فرمان نشان نخواهد داد.
    چون علایم << به ویندوز میگویند که پیغام مورد نظر را عوض نشان دادن در صفحه خط فرمان ، داخل یک فایل ( در این
    مثال C:\ABC.txt) بگذارد.

    نمیدانم که توانستم مطلب را درست جا بیندازم یا نه. بهر حال اگر نه سوالاتتان را مطرح بفرمائید تا توضیح دهم.

    در اول بحث امروز گفتم که میخواهیم طرز کار استفاده از علامت < و فرق آن با علایم << را بدانیم.
    این دو نوع کار مشابه انجام میدهند ولی یک فرق اساسی دارند که در مثال زیر تشریح شده است:

    فرضا" در دستور گفته شده در بالا ، پس از اجرای فایل Batch دو حالت خواهیم داشت

    1. فایلی بنام ABC.txt در روت درایو C وجود ندارد.
    2. از قبل فایلی بنام ABC.txt در روت درایو C وجود دارد.

    اگر فایلی بنام بنام ABC.txt در روت درایو C وجود نداشته باشد ، این فایل ساخته شده و پیغام مورد نظر داخلش نوشته
    خواهد شد.
    ولی اگر فایلی بهمین نام از قبل در این محل موجود باشد ، برنامه این فایل را باز کرده و در داخل آن بعد از آخرین سطر
    اطلاعات موجود در آن، پیغام مورد نظر را خواهد نوشت.

    حالا اگر در دستور بالا بجای اپراتور << از اپراتور < استفاده کنیم همه چیز مثل قبل است با یک تفاوت اساسی. این
    اپراتور باعث خواهد شد که اول اطلاعات داخل فایل ABC.txt پاک شده و سپس فقط پیغام مورد نظر را خواهد نوشت.

    برای درک بیشتر این اپراتور ، حتما" مثال جلسه قبل در رابطه با فایل رجستری را ، این بار با استفاده از اپراتور < بجای
    اپراتور << امتحان کنید.

    اگر امتحان بالا را انجام دادید شاید بگوئید با این تفاسیر اپراتور < بدرد نمیخورد و بهتر است که برای این کار ها همیشه
    از اپراتور << استفاده کنیم.
    ولی من میگویم با عجله نتیجه گیری کردید و این نتیجه گیری کاملا" غلط است. برای درک علت به مثال زیر توجه کنید.

    در مثال جلسه قبل اول فایلی بنام ABC.reg در روت درایو C ساخته شده و سپس این فایل اجرا شد.
    ولی فرض ما در مثال فوق بر این است که از قبل فایلی بنام ABC.reg در محل مذکور وجود ندارد.
    حالا فرض کنید که قبلا" فایلی با همین نام در روت درایو C وجود داشته باشد. در اینصورت این فایل دارای محتوائی هم
    هست . در نتیجه چون ما از اپراتور << استفاده کردیم ، محتوای قبلی این فایل پاک نشده و اطلاعات مورد نظر ما در انتهای
    محتوای این فایل اضافه خواهد شد.

    پس چکار باید کرد؟ اگر بخواهیم از اپراتور << استفاده کنیم که مشکل فوق الذکر را داریم. و اگر از اپراتور < استفاده
    کنیم اگر تستی را که گفتم انجام داده باشید خواهید دید که فقط یک سطر (آخرین سطر ) اطلاعات ما داخل فایل
    ABC.reg وجود دارد.
    پس چکار باید کرد؟

    جواب ساده است ما در مثال قبلی بایستی ، در اولین سطر از اپراتور < استفاده کرده و در بقیه سطور از اپراتور <<
    استفاده کنیم
    با این کار اگر احیانا" فایل ABC.reg در محل مذکور موجود باشد ، در سطر اول ، اپراتور < محتوای این فایل را پاک کرده
    و متن مورد نظر ما را خواهد نوشت
    و بقیه سطر ها را از اپراتور << استفاده میکنیم که بقیه مطالب ما درست اجرا شوند.
    یعنی فایل ما باید بصورت زیر باشد:

    کد:
    @ECHO OFF
    ECHO Windows Registry Editor Version 5.00 > C:\ABC.reg
    ECHO.  >> C:\ABC.reg
    ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip] >> C:\ABC.reg
    ECHO "DisplayIcon"="C:\\Program Files\\7-Zip\\7zFM.exe" >> C:\ABC.reg
    ECHO "DisplayName"="7-Zip 9.25 alpha" >> C:\ABC.reg
    ECHO "NoModify"=dword:00000001 >> C:\ABC.reg
    ECHO "NoRepair"=dword:00000001 >> C:\ABC.reg
    ECHO "UninstallString"="C:\\Program Files\\7-Zip\\Uninstall.exe" >> C:\ABC.reg
    
    regedit /s C:\ABC.reg
    تا اینجا نکاتی را در رابطه با اپراتور های Redirection ، مختصرا" مطالعه کردیم
    در زیر یکی دو مورد دیگر از کاربرد های این اپراتور ها را توضیح داده و بحث اپراتور ها را بپایان میرسانم.

    دستور زیر را در یک فایل Batch اجرا کنید:

    echo %date%, %time% > C:\ABC.txt

    اگر بعد از اجرای فایل Batch بالا به درایو C وارد شوید ، خواهید دید که در آن جا فایلی بنام ABC.txt درست شده و اگر
    این فایل را باز کنید خواهید دید که داخلش عبارتی شبیه عبارت زیر نوشته شده است:

    Sat 05/31/2014, 17:17:34.81

    این عبارت میگوید که در زمان اجرای دستور بالا، تاریخ روز یکشنبه 31 ماه پنجم سال 2014 و زمان ساعت 5 و 17 دقیقه
    و 34 ثانیه بوده است.

    دستور زیر را اجرا کنید:

    systeminfo > C:\ABC.txt

    حال اگر به درایو C رفته و فایل ABC.txt را باز کنید ، خواهید دید که داخل آن اطلاعات زیادی در رابطه با کامپیوتر شما
    نوشته شده است.

    یکی دیگر از این اپراتور ها NUL نام دارد که من یکی دو بار در مثال های گذشته از آن استفاده کردم و کسی سوالی
    نپرسید یعنی اینکه تمام کسانیکه مثال های این تاپیک را دنبال کرده اند ،طرز استفاده از این اپراتور را میدانند.

    بهر حال بحث این اپراتور ها را در اینجا تمام کرده و بقیه موارد مربوطه را بخودتان واگذار میکنم.

    [SIGPIC][/SIGPIC]

  10. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  11. #36
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    نمیدانم تا کنون دقت کرده اید یا نه ، در همه ویندوز ها داخل پوشه Program Files پوشه ای بنام Common Files وجود
    دارد.
    حالا فرض کنیم که شما فایلی بنام xxx.exe دارید و میخواهید این فایل توسط یک فایل Batch ، به داخل همین پوشه
    کپی شود. با روش هائیکه تاکنون یاد گرفته ایم ، مسلما" دستور زیر را بکار می برید:

    Copy xxx.exe C:\Program Files\Common Files

    حالا اگر دستور بالا را اجرا کنید فایل کپی نخواهد شد. دلیلش دو مطلب است:
    1. فایل Batch نامی را که بین حروفش فاصله خالی باشد نمی شناسد.
    2. فایل Batch موقع کار با نام هائیکه بیش از 8 کاراکتر داشته باشد مشکل دارد.

    برای درک درست مطلب بجای دستور بالا دستورات زیر را اجرا کنید:

    کد:
    @ECHO OFF
    Copy xxx.exe E:\Program Files\Common Files
    pause
    حال اگر فایل Batch را اجرا کنید خواهید دید که پیغام میدهد که . The syntax of the command is incorrect

    می بینید که گفته دستور غلط است.ولی دستور غلط نیست بلکه همانگونه که گفتم فایل Batch نامی را که بین حروفش
    فاصله خالی باشد نمی شناسد. و در مثال بالا بین Program و Files ( و همچنین مابین Common و Files ) فاصله خالی
    وجود دارد که فایل Batch قادر به شناسائی آن ها نیست.

    روش کار این است که در موارد اینگونه ، فرضا" در مثال بالا ، آدرس مورد استفاده را مابین علایم " " محصور کنیم.
    یعنی برای مثال بالا باید دستور را بصورت زیر بنویسیم تا اجرا شود:

    کد:
    Copy xxx.exe "C:\Program Files\Common Files"

    Environment Variables
    =============

    در بحث هایمان بویژه موقع کار با دستور Set با چند مورد استفاده از متغیر ها در برنامه نویسی با Batch آشنا شدیم. و در
    اینجا بیشتر در اینمورد صحبت می کنیم.

    متغیر ها دو نوع هستند یک نوع آن هائی هستند که خودمان تعیین میکنیم مثل مثال هائیکه موقع کار با دستور Set
    دیدیم.
    ولی نوع دیگری از متغیر ها هستند که در سیستم وجود دارند و فایل Batch آن ها را می شناسد و نیازی به معرفی
    آن ها نیست. اینگونه متغیر ها را Environment Variables مینامند.برای درک بهتر این نوع متغیر ها به مثال زیر توجه
    کنید.
    دستور استفاده شده در مثال بالا روش درستی نیست. همانطور که قبلا" گفتم ، فایل Batch تعدادی متغیر سیستمی
    را می شناسد . برای نمونه از نظر فایل Batch عبارت %COMMONPROGRAMFILES% مشابه آدرس گفته شده در بالا
    یعنی ....\Program Files\Common Files می باشد
    بصورت دیگر ما میتوانیم عوض استفاده از دستور طولانی بالا از دستور ساده زیر استفاده کنیم:

    کد:
    Copy xxx.exe "%COMMONPROGRAMFILES%"
    متغیر استفاده شده در بالا یکی از متغیر های Environment Variables است.
    یادگیری این متغیر ها در خیلی از موارد لازم است .اگر به مثال زیر دقت کنید مهم بودن یادگیری آن ها را متوجه خواهید
    شد.

    مثال:
    فرضا" میخواهیم فایل xxx.exe را به داخل پوشه C:\Documents and Settings\{username}\Application Data
    (در ویندوز XP) و یا معادلش پوشه C:\Users\{username}\AppData\Roaming در ویندوز 7 کپی کنیم.
    در این جا دو مسئله مهم است که بدانیم:

    1. لازم نیست که آدرس طویل بالا را استفاده کنیم . هم در ویندوز XP و هم در ویندوز 7 میتوانیم بجای آدرس های طویل
    بالا از متغیری بنام %APPDATA% استفاده کنیم. یعنی با اجرای دستور زیر هم در ویندوز XP و هم در ویندوز 7 کار
    مورد نظر ما انجام خواهد شد:

    کد:
    Copy xxx.exe "%APPDATA%"
    2. اگر از متغیر نوع Environment Variables استفاده نکنیم ، بعضی مواقع حتی اگر فایل یا فایل ها به محل مورد نظر
    کپی شوند ، باز هم برنامه ما کار نخواهد کرد . به مثال زیر توجه کنید:

    فرضا" لازم است که برای اجرای یک برنامه ویژه ،فایل xxx.exe به داخل پوشه Windows کپی شود. برای اینکار در حالت
    عادی ( بدون استفاده از متغیر نوع Environment Variables ) مسلما" دستور زیر را استفاده میکنیم:

    Copy xxx.exe C:\windows

    بله این فایل به پوشه C:\windows کپی خواهد شد.ولی مسئله مهمی این جا وجود دارد که کاربرد برنامه شما را
    محدود میکند.چون این برنامه فقط برای کسانی درست کار خواهد کرد که ویندوزشان در درایو C نصب شده باشد.

    کسان دیگری که ویندوزشان در درایو C نصب نیست (مثل بنده که ویندوزم در درایو E نصب هست ) ، نخواهند توانست
    از برنامه مورد نظر استفاده کنند.
    بنابر این با این روش فقط یک عده محدودی قادر به استفاده هستند یعنی برنامه شما نقص دارد.

    پس چکار باید کرد؟
    اینجاست که استفاده از متغیر های نوع Environment به درد میخورند. برای این مثال برای آدرس پوشه ویندوز یک
    متغیر نوع Environment بنام %SystemRoot% و جود دارد که برای مثالمان میتوانیم بصورت زیر استفاده کنیم:

    کد:
    Copy xxx.exe %SYSTEMROOT%
    خوبی این دستور این است که فایل Batch موقع اجرا وقتی به این متغیر میرسد دیگر مثل دستور بالا عمل نمیکند بلکه
    اول نگاه میکند تا ببیند ویندوزی که استفاده میکنید در کدام درایو است و سپس فایل xxx.exe را به داخل پوشه ویندوزی
    که در حال استفاده از آن هستید کپی میکند ، فرضا" در سیستم من آن را به آدرس E:\Windows کپی میکند.

    اگر عمری باشد در جلسه بعد انواع متغیر های اینگونه را هم برای ویندوز XP و هم برای ویندوز 7 ارایه خواهم کرد.

    [SIGPIC][/SIGPIC]

  12. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  13. #37
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    لیست تعدادی از متغیر های Environment Variables

    1. در ویندوز XP

    کد HTML:
                   Few environment variables in Windows XP
    ================================================================================
    Environment               Path
    ================================================================================
    %profiledir%              C:\Documents and Settings\
    --------------------------------------------------------------------------------
    %ALLUSERSPROFILE%         C:\Documents and Settings\All Users
    --------------------------------------------------------------------------------
    %DifaultUserProfile%      C:\Documents and Settings\Default User
    --------------------------------------------------------------------------------
    %USERPROFILE%             C:\Documents and Settings\{username}
    --------------------------------------------------------------------------------
    %APPDATA%                 C:\Documents and Settings\{username}\Application Data
    --------------------------------------------------------------------------------
    %HOMEPATH%                \Documents and Settings\{username}
    --------------------------------------------------------------------------------
    %ProgramFiles%            C:\Program Files
    --------------------------------------------------------------------------------
    %CommonProgramFiles%      C:\Program Files\Common Files
    --------------------------------------------------------------------------------
    %HOMEDRIVE%               Root Drive ,C:\ 
    --------------------------------------------------------------------------------
    %SYSTEMDRIVE%             Moves to the Root drive , C:
    --------------------------------------------------------------------------------
    %SYSTEMROOT%              C:\WINDOWS
    --------------------------------------------------------------------------------
    %WINDIR%                  C:\WINDOWS
    --------------------------------------------------------------------------------
    %TEMP% and %TMP%          C:\DOCUME~1\{USER}\LOCALS~1\Temp
    --------------------------------------------------------------------------------
    %CD%                      Current working directory
    --------------------------------------------------------------------------------
    %CMDCMDLINE%              Displays Windows Version
    --------------------------------------------------------------------------------
    %CMDEXTVERSION%           Command prompt version
    --------------------------------------------------------------------------------
    %COMPUTERNAME%            Equivalent to hostname command
    --------------------------------------------------------------------------------
    %COMSPEC%                 C:\Windows\System32\cmd.exe
    --------------------------------------------------------------------------------
    %DATE%                    Display current date
    --------------------------------------------------------------------------------
    %ERRORLEVEL%              Exit code for the previously executed command
    --------------------------------------------------------------------------------
    %NUMBER_OF_PROCESSORS%    Displays number of processors
    --------------------------------------------------------------------------------
    %OS%                      Displays the name of the OS installed
    --------------------------------------------------------------------------------
    %PATH%                    Points to C:\WINDOWS\system32
    --------------------------------------------------------------------------------
    %PATHEXT%                 .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF;.WSH
    --------------------------------------------------------------------------------
    %PROCESSOR_ARCHITECTURE%  Displays the processor architecture
    --------------------------------------------------------------------------------
    %PROCESSOR_LEVEL%         Displays the processor level
    --------------------------------------------------------------------------------
    %PROCESSOR_REVISION%      Displays the processor revision
    --------------------------------------------------------------------------------
    %PROMPT%                  Displays the current prompt
    --------------------------------------------------------------------------------
    %RANDOM%                  Generates a random integer between 0 and 32767
    --------------------------------------------------------------------------------
    %TIME%                    Displays current time
    --------------------------------------------------------------------------------
    %USERDOMAIN%              Displays the hostname
    --------------------------------------------------------------------------------
    %USERNAME%                Displays the currently logged in user name
    ================================================================================
    2. در ویندوز 7

    کد HTML:
    Windows 7 Environment Variables List
    =============================================================================
    Environment Variable         Path
    =============================================================================
    %ALLUSERSPROFILE%            C:\ProgramData
    -----------------------------------------------------------------------------
    %APPDATA%                    C:\Users\{username}\AppData\Roaming
    -----------------------------------------------------------------------------
    %COMMONPROGRAMFILES%         C:\Program Files\Common Files
    -----------------------------------------------------------------------------
    %COMMONPROGRAMFILES(x86)%    C:\Program Files (x86)\Common Files
    -----------------------------------------------------------------------------
    %COMSPEC%                    C:\Windows\System32\cmd.exe
    -----------------------------------------------------------------------------
    %HOMEDRIVE%                  C:
    -----------------------------------------------------------------------------
    %HOMEPATH%                   C:\Users\{username}
    -----------------------------------------------------------------------------
    %LOCALAPPDATA%               C:\Users\{username}\AppData\Local
    -----------------------------------------------------------------------------
    %PROFILESDIRECTORY%          C:\Users
    -----------------------------------------------------------------------------
    %PROGRAMDATA%                C:\ProgramData
    -----------------------------------------------------------------------------
    %PROGRAMFILES%               C:\Program Files
    -----------------------------------------------------------------------------
    %PROGRAMFILES(X86)%          C:\Program Files (x86) (only in 64-bit version)
    -----------------------------------------------------------------------------
    %PUBLIC%                     C:\Users\Public
    -----------------------------------------------------------------------------
    %SystemDrive%                C:
    -----------------------------------------------------------------------------
    %SystemRoot%                 C:\Windows , %WINDIR%
    -----------------------------------------------------------------------------
    %TEMP% and %TMP%             C:\Users\{username}\AppData\Local\Temp
    -----------------------------------------------------------------------------
    %USERPROFILE%                C:\Users\{username}
    -----------------------------------------------------------------------------
    %WINDIR%                     C:\Windows , (%SYSTEMDRIVE%\Windows)
    =============================================================================

    [SIGPIC][/SIGPIC]

  14. 6 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  15. #38
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    دستور FOR
    ======

    این دستور ، دستوری بسیار مفید بوده و حداقل از نظر بنده کاربرد هایش خیلی بیشتر از اکثریت دستورات دیگر است.
    متاسفانه خیلی از کاربران علاقمند دستورات Batch ، وقتی به این دستور میرسند ، با توجه به گستردگی کاربرد های
    آن و عدم وجود یک آموزش مفصل و کافی در مورد آن ، نه تنها نمیتوانند آن را یاد بگیرند بلکه در کل از یادگیری دستورات
    Batch ناامید شده و از خیر یاد گیری میگذرند. حتی خود بنده هم گاها" گیج چگونگی استفاده از این دستور می شوم.

    من سعی میکنم در حد درک ناقص خود از این دستور ، پاره ای از کاربرد های آن را با مثال های واضح توضیح دهم. ولی
    بدیهی است که فقط با مطالعه نمیتوان موفق شد ، این تمرین و تجربه هست که مهارت و تخصص و قدرت ایجاد میکند.

    برای درک اولیه چگونگی کار این دستور ، به مثال زیر توجه کنید.
    فرض کنید که میخواهیم توسط یک فایل Batch کاری کنیم که اعداد 1 تا 5 بترتیب نوشته شوند.ابتدائی ترین راه این
    است که دستورات زیر را اجرا کنیم:

    کد:
    @ECHO OFF
    echo 1
    echo 2
    echo 3
    echo 4
    echo 5
    
    pause >nul
    با اجرای دستوربالا پنجره ای مثل شکل زیر خواهیم داشت.

    ubct5uqou668cd87llty

    همانطور که می بینید برای نشانداده شدن اعداد 1 تا 5 در 5 سطر ،تعداد پنج سطر کد نوشتیم.
    حالا فرض کنید که میخواهیم بجای اعداد 1 تا 5 ، اعداد 1 تا 100 بترتیب دیده شوند. معلوم است که اگر بخواهیم از
    روش بالا استفاده کنیم باید تعداد 100 سطر کد بنویسیم.و همینطور الی آخر.
    مطمئنا" قبول دارید که انجام این کار خیلی وقت گیر و خسته کننده بوده و فایل Batch ساخته شده هم بسیار طویل
    خواهد شد.

    با استفاده از دستور FOR انجام اعمال بالا خیلی راحت و سریع میشود برای مثال دستور زیر را اجرا کنید:

    کد:
    @ECHO OFF
    for %%A in (1 2 3 4 5 6 7 8 9 10 ) do echo %%A
    pause >nul
    در دستور بالا برای نشان دادن اعداد 1 تا 10 را فقط از یک سطر دستور استفاده کردیم.
    البته این ساده ترین روش اجرای دستور FOR است و ما با دستور های کوتاهتر دیگری هم میتوانیم این کار را انجام
    دهیم که در موردشان صحبت خواهم کرد. ولی قبل از ورود به بحث های مربوطه ، لازم میدانم که در اینجا دستور بالا
    را کاملا" تشریح کنم تا درک اولیه در مورد کاربرد های دستور FOR را بدست بیاوریم.

    __ در ابتدای دستور یک سطری بالا اول کلمه FOR آمده است.
    __ بعد از آن حرف A را بعنوان متغیر قرار داده ایم که در فایل Batch باید قبل از نام متغیر دوتا علامت %% را بگذاریم تا
    فایل Batch بداند حرف A یک متغیر است. شما میتوانید بجای حرف A هر حرف دیگر دلخواهتان را قرار دهید.
    __ بعد از نام متغیر داخل پرانتز اعداد 1 تا 10 را پشت سر هم و با یک فاصله قرار داده ایم. محتوای پرانتز ، لیست
    (List) نامیده میشود.
    __ بعد از پرانتز با یک فاصله دستور do قرار داده شده است
    __ و در انتها دستور echo %%A نوشته شده است

    حال ببینیم منظور از تک تک نوشته های بالا چیست.
    با دستور بالا به FOR میگوییم که به داخل لیست (در این مثال اعداد داخل پرانتز ) نگاه کند سپس اولین موجودی لیست
    (یعنی عدد 1 را در این مثال) در داخل متغیر A قرار داده و سپس بپرد و دستوری را که بعد از do نوشته شده اجرا کند.
    در این مثال دستور عبارت از echo %%A است که عدد موجود در داخل متغیر A را نشان خواهد داد (که ما عدد 1 را
    در صفحه خط فرمان خواهیم دید).
    دستور FOR وقتی عمل بالا انجام شد دوباره به اول بر خواهد گشت. و کار را دوباره تکرار خواهد کرد با این فرق که این
    دفعه عدد دوم از لیست یعنی عدد 2 را داخل متغیر A ذخیره خواهد کرد ... بعد ما عد 2 را خواهیم دید.

    دستور FOR این عمل را تا آخرین موجودی لیست ( یعنی عدد 10 در این مثال) تکرار کرده و بعد بسته خواهد شد.
    امیدوارم توانسته باشم طرز کار این دستور را درست و مفهوم تشریح کنم.

    در جلسات بعد با نکات بیشتری آشنا خواهیم شد.

    [SIGPIC][/SIGPIC]

  16. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  17. #39
    مدیر انجمن کامپیوتر
    همديگر را دوست داشته باشيم و بهم احترام بگذاريم
    تاریخ عضویت
    Mar 2012
    محل سکونت
    زیر سایه شما
    نوشته ها
    801
    تشکر تشکر کرده 
    3,495
    تشکر تشکر شده 
    3,460
    تشکر شده در
    796 پست
    حالت من : ShadOsarhal
    قدرت امتیاز دهی
    13719
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    سلام

    استاد عزيز قبلش از سوال پيش‌پا افتاده‌ام عذرخواهي ميکنم!

    با وجود استفاده از دستور pause، چرا پنجره بسيار سريع باز و بسته ميشه؟ (طوريکه محتواش خونده نميشه!)

    درضمن چرا با وجود سرعت بيشتر در خوندن فرمت
    cmd که windows NTcommand Script هست از فرمت bat که MS-DOS Batch File هست استفاده ميشه؟


    سپاس
    دوستدار هميشگي شما "eDvArDo"

    7n1wj1mlvxoxejezfhye

    دلِ هر ايراني كه براي ايران نمي‌تپد، بهتراست نتپد! (پروفسور حسابي)

    آيا پاسخ سوالي را بدانم بهتر است، يا اينكه ندانسته از دنيا بروم؟! (ابوريحان بيروني)

    پس از سالها جهد و تلاش در كسب علم و معرفت، دانستم كه هيچ ندانستم! (علامه حسن زاده آملي)

  18. 4 کاربر مقابل از eDvArDo عزیز به خاطر این پست مفید تشکر کرده اند.


  19. #40
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض پاسخ : دستورات فایلهای Batch

    نقل قول نوشته اصلی توسط eDvArDo نمایش پست ها
    .....
    1. با وجود استفاده از دستور pause، چرا پنجره بسيار سريع باز و بسته ميشه؟ (طوريکه محتواش خونده نميشه!)

    2. چرا با وجود سرعت بيشتر در خوندن فرمت
    cmd که windows NTcommand Script هست از فرمت bat که MS-DOS Batch File هست استفاده ميشه؟
    ...
    ادواردوی عزیز:

    1. در پست شماره 8 عرض کردم:
    __ یک فایل Batch باید دارای پسوند bat باشد ولی اگر در ویندوز بجای پسوند bat از پسوند cmd استفاده کنید ، فایل
    Batch بهتر و سریعتر کار خواهد کرد.
    2. این عیب که با وجود بودن دستور pause باز هم صفحه خط فرمان دیده نشده و بسرعت بسته میشود به چند عامل بستگی دارد:
    _ نوشته های شما در داخل فایل Batch اشکال دارد.
    __ یک عاملی در سیستم شما باعث عدم اجرای دستور میشود.
    _...

    بهر حال یک راه برای مشاهده دستورت بالا این است که وارد خط فرمان ویندوز شده و سپس دستور بالا را با مختصر
    تفاوت زیر وارد کرده و سپس کلید Enter را فشار دهید:

    کد:
    for %A in (1 2 3 4 5 6 7 8 9 10 ) do echo %A
    اگر توجه کرده باشید در فایل Batch از علامت %% برای متغیر استفاده کردیم ولی در خط فرمان باید از علامت % استفاده شود.

    البته در این روش هم دستورات اجرا شده را خواهید دید و هم نتیجه یعنی نشان داده شدن اعداد را.

    راه دیگر این است که فایل Batch (مثلا" xx.cmd ) را در روت درایو فرضا" D قرار داده و سپس در خط فرمان ویندوز دستور زیر را تایپ
    کرده و کلید Enter را بزنی:

    D:\xx.cmd

    نتیجه بشکل زیر خواهد بود:

    ajr6hekflysg0naix5

    راه دیگر این است که یک فایل Batch با دستور زیر اجرا کنید که پس از اجرا خواهید دید فایلی بنام aaa.txt در کنار فایل Batch ساخته
    شده که در داخلش اعداد 1 تا 10 نوشته شده است:

    کد:
    for %%A in (1 2 3 4 5 6 7 8 9 10 ) do echo %%A >>aaa.txt
    لطفا" نتیجه کار را اعلام فرمائید

    [SIGPIC][/SIGPIC]

  20. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


صفحه 4 از 18 نخستنخست 1234567814 ... آخرینآخرین

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

http://www.worldup.ir/