فایلهای Batch با پسوند bat در ویندوز، مجموعهای از دستورات هستند که در واسط خط دستور یا پنجرهی cmd ویندوز اجرا میشود و امور بسیاری را میتوان به کمک آن انجام داد. از کار کردن با ابزارهای پیشرفتهای مثل ابزارهای تنظیمات شبکه و تنظیمات پاور آپشنز ویندوز گرفته تا تغییر نام و اسکن فایلها و جابجایی فایلها و فولدرها، همگی با دستوراتی که در command prompt تایپ شده، قابل انجام است. به عبارت دیگر فایل Batch در ویندوز، تقریباً تمام کارهایی که در واسط گرافیکی ویندوز انجام میدهیم را به کمک کامند پرامپت انجام میدهد.
در این مقاله با روش نوشتن فایلهای bat و اجرای آنها آشنا میشویم و مثالهایی را بررسی میکنیم. با ما باشید.
قبلاً مقالهای در خصوص تبدیل کردن یک فایل bat به فایل اجرایی با پسوند exe تهیه کردیم. در حقیقت فایل bat مجموعهای از دستورات است و اگر با دسترسی ادمین آن را اجرا کنیم، تقریباً انجام هر کاری در محیط ویندوز ممکن است!
چگونه یک فایل Batch در ویندوز ایجاد کنیم؟ نحوه چاپ کردن جملات و نام فایل bat
فایل Bat اساساً یک فایل متنی ساده است. لذا ابتدا روی فضای خالی دستاپ یا فولدری که باز کردهاید، راستکلیک کنید و گزینهی New و سپس Text Document را انتخاب کنید.
اکنون نام فایل را test.bat بگذارید. توجه کنید که پسوند فایل متنی txt است اما پسوند فایل Batch دارای پسوند bat است. طبعاً ویندوز از شما سوال میکند که آیا مطمئن هستید که تغییر اکستنشن فایل به bat صحیح است؟ روی Yes کلیک کنید.
در ادامه روی فایل ایجاد شده راست کلیک کنید و گزینهی Edit را انتخاب نمایید. فایل توسط notepad ویندوز باز میشود. میتوانید از نرمافزار پیشرفتهتری مثل Notepad++ نیز برای باز کردن این فایل و ویرایش دستورات استفاده کنید.
در فایل bat میبایست هر دستور را در خط جدیدی وارد کنید. با استفاده از دستور eche به چاپ جملات دلخواه بپردازید تا توضیحاتی به کاربر بدهید. به عنوان مثال برای چاپ کردن عبارت Press any key to continue ... که به معنی «کلیدی را برای ادامهی کار فشار دهید» است، از دستور زیر استفاده کنید:
@echo Press any key to continue ...
اگر میخواهید نام و توضیحی برای فایل bat در ابتدای آن اضافه کنید، از دستور @echo off و در خط بعدی، title و سپس توضیحات خود، استفاده کنید. توجه کنید که اگر عبارتهای فارسی وارد کنید، معمولاً مشکلات عجیبی به وجود میآید و اسکریپت شما کار نخواهد کرد.
به عنوان مثال در فایل زیر پس از title توضیحات نوشته شده و در خط بعدی با دستور echo عبارتی چاپ شده است. برای جلوگیری از بسته شدن پنجرهی cmd پس از اجرای اسکریپت، از عبارت pause در خط بعدی استفاده کنید.
@echo off
title some random NAME and Description
echo Press a Key ...
pause
نتیجه را در تصویر زیر بررسی کنید:
آموزش ساخت فایل bat برای ping کردن سایتها
به دو مثال مفید و کاربردی میپردازیم. نحوهی پینگ کردن به کمک یه فایل bat ساده. در cmd ویندوز با تایپ کردن دستور زیر میتوان دسترسی و تأخیر در دسترسی به سایتی مثل گوگل را بررسی کرد. نتیجه تایم پینگ و TTL و آیپی سرورهای گوگل خواهد بود.
ping google.com -t
در فایل متنی دستورات زیر را وارد کنید تا توضیحاتی برای اسکریپت پینگ گوگل و در ادامه عمل پینگ را داشته باشیم:
@echo off
title pinging www.GOOGLE.com
echo TEST: Pinging Google
ping google.com -t
و نتیجهی دبلکلیک کردن روی این فایل bat را مشاهده کنید:
سوییچ -t به این معنی است که دستور پینگ مرتباً تکرار شود و توقفی در کار نخواهد بود. بنابراین عبارت pause را حذف کردیم چرا که پنجرهی cmd بسته نخواهد شد. برای آشنایی بیشتر با مفهوم پینگ و تأخیر در دسترسی به سرورهای سایتها، به مقالهای که قبلاً تهیه کردیم مراجعه فرمایید:
آموزش نوشتن اسکریپت Batch برای دریافت شناسهی IP و Mac Address کارت شبکهها
یک لپتاپ ویندوزی ساده، معمولاً سه کارت شبکهی LAN (با پورت اترنت) و Wi-Fi و بلوتوث دارد و ممکن است چند کارت شبکهی مجازی نیز به روشهای نرمافزار اضافه شده باشد. هر کارت شبکه یک شناسهی IP و مک آدرس دارد. اگر بخواهید با یک دستور ساده، تمام شناسهها و Mac Addressها را رویت کنید، باید از دستور زیر استفاده کنید:
ipconfig /all
در واقع با تایپ کردن سوییچ /all میتوان مشخصات تمام کارت شبکهها را با یک دستور ساده مشاهده کرد. در فایل bat دستورات زیر را وارد کنید و توجه کنید که وجود pause برای جلوگیری از بسته شدن پنجرهی cmd، این بار الزامی است:
@echo off
title pinging www.GOOGLE.com
echo List of All IP and Mac Address
ipconfig /all
pause
نتیجهی اجرای این دستور ممکن است طولانی باشد. با توجه به نام کارت شبکهی واقعی خود، میتوانید موردی که مدنظرتان است را به راحتی تشخیص دهید. به عنوان مثال من از دانگل USB برای دسترسی به شبکهی Wi-Fi استفاده میکنم و چیپست آن ساخت RealteK است. بنابراین بخشی از خروجی را برش زدهام. توجه کنید که مکآدرس کامپیوتر را برای حفظ امنیت، به کسی نشان ندهید:
باز کردن چند سایت در تبهای مختلف با یک فایل bat ساده
فایل txt جدیدی ایجاد کنید و نام آن را News یا نامی آشنا بگذارید و مثل قبل، پسوند را bat انتخاب کنید. در ادامه روی فایل راستکلیک کرده و Edit را انتخاب کنید. متن زیر را پیست کنید و به جای نام سایتها، نام سایتهای موردعلاقهی خود را وارد کنید:
@echo off
start "" http://www.msnbc.com
start "" https://news.google.com/
start "" https://it-planet.ir
دستور start و سوییچ "" پس از آن، به این معنی است که سایت در تب جدید در مرورگر پیشفرض باز شود. اسکریپت خود را سیو کنید و روی آن دبلکلیک کنید. سایتها در تبهای مختلف باز میشوند. میتوانید این اسکریپت را در تسکبار ویندوز ۱۰ پین کنید و با یک کلیک، تمام سایتهای پرکاربرد خود را باز کنید!
اسکریپت bat برای مرتب کردن فایلها با پسوندهای مختلف در پوشههای مختلف
اگر تعداد زیادی فایل با پسوندهای مختلف در یک پوشه دارید و میخواهید هر نوع فایل، در فولدری که پسوند فایلها، نام آن است، قرار گیرد، از اسکریپت زیر استفاده کنید:
@echo off
rem For each file in your folder
for %%a in (".\*") do (
rem check if the file has an extension and if it is not our script
if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (
rem check if extension folder exists, if not it is created
if not exist "%%~xa" mkdir "%%~xa"
rem Move the file to directory
move "%%a" "%%~dpa%%~xa\"
))
عبارت if به معنی اگر و عبارت not exist به معنی وجود نداشتن و دستور move برای جابجا کردن فایلها که با عبارت %%a مشخص شده، به کار میروند. دستورات فوق کمی پیچیده است و پس از مدتی اسکریپتنویسی با مفهومشان به خوبی آشنایی پیدا میکنید. در خط دوم پس از عبارت rem، توضیحاتی در باب دستورات بعدی نوشته شده که صرفاً توضیح است و چاپ یا اجرا نمیشود. به عبارتی برای یادداشتگذاری در اسکریپتها، از rem استفاده میشود.
نتیجهی اجرا کردن اسکریپت فوق این است که فایلها به صورت مرتبشده در پوشههای مختلف قرار میگیرند:
دستوراتی کاربردی برای نوشتن فایل bat در ویندوز
در ادامه به دستوراتی که معمولاً در نوشتن اسکریپتها کاربرد دارد، میپردازیم. به موارد زیر توجه کنید:
با دستور @echo off اسکریپت bat پس از اجرا بسته میشود و اثری از آدرس آن در پنجرهی cmd باقی نخواهد ماند.
با دستور title میتوان توضیحاتی برای فایل bat نوشت و همانطور که پیشتر دیدیم، پس از اجرا کردن فایل، در نوار عنوان نیز نمایان میشود.
pause از بسته شدن پنجرهی cmd جلوگیری میکند و به علاوه اجرای دستورات را متوقف میکند. عبارت Press any key to continue… نیز به معنی توقف کردن قبل از ادامهی کار است.
با دستور cls میتوان پنجرهی cmd را پاکسازی کرد تا تمیز و خلوت به نظر برسد.
با دستور rem که مخفف remark است، میتوان توضیحاتی برای دستورات در فایل bat اضافه کرد که در خروجی نمایش داده نمیشود و صرفاً توضیحی برای کسانی است که اسکریپت را بررسی و ویرایش میکنند. شاید در آینده بخواهید اسکریپت خود را ادیت کنید، در این صورت توضیحات اضافی برای دستورات جدید و پیچیده، کمک شایانی به شما خواهد کرد.
%%a به معنی کار با تکتک فایلهای موجود در فولدری است که فایل bat در آن اجرا میشود.
(“.\”) به معنی فولدر ریشهای است. برای هدایت کردن و اجرای دستورات در پوشههای دیگر، ابتدا از فولدر ریشه شروع میکنیم و آدرسدهی را ادامه میدهیم.
start “” [website] با این دستور میتوان یک وبسایت را در مرورگر پیشفرض باز کرد.
makeuseofسیارهی آیتی
سلام ممنون از سایت خوبتون
می خواستم بدونم چجوری باید یک فایل زیپ رو از یک سرور ویندوزی به سرور ویندوزی دیگه کپی کنم با batch فایل؟
دستور copy که میزنم خطای یوزر پسورد میده نمیدونم یوزر و پسورد رو کجا باید بذارم
سلام
دستور کپی برای کپی از یک کامپیوتر در همون سیستمه نه یه سرور یا سرور مجازی دیگه. طبعاً باید لاگین انجام بشه. بنده تجربهای در این خصوص ندارم دوستان دیگه که میخونن نظرات رو، ممکنه راهنمایی کنند. به نظرم در فرومهای هاستینگ و سرور سوال کنید جواب میگیرید.
من الان یه فایل bat دارم که بین مرئی بودن و مخفی شدن فایل های مخفی سوییچ میکنه
میخام در انتهای اون ریفرش رو هم اضافه کنم
چکار کنم که دکمه ی F5 رو بزنه
سلام
من سرچ کردم یه راهی پیدا کردم به نوعی که نمیدونم به کار شما میاد یا نه. شما میتونید یه اسکریپ ویژوآلبیسیک بنویسید که در واقع با نوت پد میشه نوشت و با پسوند vbs ذخیره کرد.
توی اسکریپت میتونید فرمان بدید که explorer ویندوز اجرا بشه و بعد یه سری کلید دلخواه زده بشه. توی نوتپد من این اسکریپت رو نوشتم:
که میاد کلید فلش پایین رو با ۵۰۰ میلیثانیه تأخیر چند باز فشار میده البته بعد از اجرای اکسپلورر.
این فایل رو رو دستاپ ذخیره کردم:
d:/desktop/1.vbs
و در cmd یا فایل bat میشه با تایپ کردن آدرس کامل این فایل 1.vbs رو اجرا کرد.
شما میتونید پس از پایان دستورات، فرمان بدید که یه فایل vbs اجرا بشه و مثلاً کلید Alt+TAB برای سوییچ به پنجرهی فایل اکسپلورر و بعدش f5 زده بشه.
برای من این اسکریپت ساده جواب داد:
با سلام
چه جوری میتونم از دستوراتی که در داخل فایل bach یا cmd که اجرا شده خروجی در قالب فایل txt بگیرم؟ممنون میشم راهنمایی کنید.
سلام.
در موردش قبلاً مطلب منتشر کردیم:
چگونه خروجی دستورات cmd یا PowerShell را در فایل متنی ساده ذخیره کنیم؟
با سلام
اسکریپتی ویندوزی می خوام که مثلا یک فایل word را که داری پسورد 11111 برای باز شدن می باشد با شناسایی درونی پسورد در خود اسکریپت با اجرا شدن اسکر یپت باز کند.
و این اسکریبت در خصوص فایلهایی که هم یوزر و هم پسورد داشته باشند چطور تغییر می کنه؟
ممنون
سلام
در خصوص دیکریپت کردن فایلی که پسورد روش هست، چیزی پیدا نکردم سرچ کنید بازم. اما برای باز کردن فایل همچین دستوری لازمه:
winword /t filename
که قبل از وینورد باید مسیر فایل اجرایی نرمافزار ورد به صورت کامل قرار بگیره و در مورد filename هم آدرس کامل لازمه.
سلام من می خواهم فایل bat بسازم که کد رجیستری زیر ر ا اجرا کنه
من این دستورات را بصورت کد رجیستری ذخیره کردم ولی برای اجرا اجازه Admin را میخواد
لطفا راهنمایی کنید
سلام
برای افزودن و ادیت و غیره در رجیستری ویندوز از طری cmd میتونید از دستور reg استفاده کنید. برای هر کار یه آپشنی داره. تو cmd بزنید reg /? که راهنمایی این دستور چاپ بشه. باز ابهام داشتید سرچ کنید. مثلاً در مورد دستور افزودن، سینتکس به این شکله:
REG ADD KeyName {/v ValueName | /ve} /t Type /f
سلام دوستان . من میخوام روی کلاینت های شبکه موقع روشن کردن کامپیوترها یه بچ فایل اجرا کنم که شاخه TEMP رو پاک کنه . ولی باید مجوز Admin باشه . چطوری میشه دستورات رو با دسترسی Admin به صورت بچ فایلی اجرا کرد؟
سلام
یه سرچ کردم چند روش گفته بودن از جمله ایجاد شورتکات و تنظیم دسترسی ادمین در Properties اون شورتکات. روش دیگه این بود که قبل از دستورات فایل bat، کد زیر رو اضافه کنید:
سلام وقتتون بخیر مبخواستم ببینم چجوری میشه چندتا ای پی رو همزمان با یه فایل batch اجرا کرد مثلا 6 تا ای پی با یه فایل bath
آقای شیری ممنون از وقتی که گذاشتین ، ولی متاسفانه انجام نشد . ارور Requseting administrative privileges میده
از همون روش ایجاد شورتکات و فعال کردن دسترسی ادمین در تنظیمات شورتکات استفاده کنید و دقت کنید که نمیشه این فایلها رو تحت حساب استاندارد اجرا کرد. باید اکانت ادمین باشه.
سلام روز بخیر
چطوری میشه در بچ فایل ها یه شرط گذاشت که اینترنت اکسپلورر باز هست یا نه و اگه نیست باز کنه و اگه باز هستش ببنده؟
ممنون
با سلام
من دستوری در cmd میخوام که یک فایل رو از اینترنت دانلود کنه و در یک مسیر، مثلا C:\test ذخیره کنه.
ممنون میشم راهنمایی کنین
نظر شما در انتظار تایید است.
سلام وقتتون بخیر من برای پینگ گرفتن از دستور :
استفاده میکنم ولی فقط مرتب پشت هم دستور TEST: Pinging Google چاپ میشود مشکل چیه
سلام
مطمئنید مشکل داره؟ من همین متن رو در فایل TXT ذخیره و پسوند رو به bat تغییر دادم و دبلکلیک کردم. درست کار میکنه. اون عبارت فقط در خط اول چاپ میشه و بعد مرتباً پینگ میشه و نتیجه ذکر میشه.
البته برای مانیتور کردن پینگ گوگل، یه اپ کمحجم و ساده و سبک معرفی کردیم که شاید به کار شما بیاد:
نمایش پینگ یا تأخیر اینترنت در تسکبار ویندوز با PingoMeter و کاربرد آن
با سلام.
من میخوایم bat فایلی ایجاد کنم که پس از اجرا شدنش چنتا برنامه و یکسری فولدر رو در سیستم من اجرا و باز کنه که تا با اجرای یک bat چند برنامه اجرا بشن و چند فولدر هم باز بشن.
ممنون میشم راهنمایی کنید🙏🙏🙏
سلام
سوال خوبیه. برای خودم کاربرد داشت یه مقاله در موردش نوشتم همین الان. از دستورات START و Explorer میشه استفاده کرد.
آموزش اجرا کردن سریع چند بازی و برنامه و باز کردن چند فولدر در ویندوز با فایل bat
سلام وقت بخیر
می خواستم بدونم اگه بخوام به دستور if بگم که اگه مثلا فلان برنامه باز بود فلان کار رو بکن باید چی بعد از if بنویسم؟
ممنون میشم یه راهنمایی بکونید.
سلام
فرصت بشه سرچ میکنم در موردش.
سلام خسته نباشید می خواستم با bat کل هاردم و فرمت کنم همچین امکانی هست در نت پد برنامه نوشت که بتونم به اسونی هاردم رو فرمت کنم ؟ ممنون می شم اگه کدشو برام بدین 🙏🙏🙏
سلام
در فرومها سوال کنید. دستور فرمت کردن هارددیسک رو قبلاً در مقالهای کار کردن دوستان ولی حضور ذهن ندارم که چطور بود.
حل مشکل فرمت نشدن فلشدرایو USB با فرمت از طریق دستورات Cmd
با سلام
ببخشید من خیلی تحقیق کردم که چه جوری میشه یک پوشه رو از طریق ایمیل ارسال کرد ولی تمام نتایجی که پیدا کردم مربوط میشد به نحوه ارسال یک پیام ساده
می خواستم بدونم چه جوری میشه از طریق اسکریپت یک پوشه رو از طریق ایمیل ارسال کرد
سلام
فولدر رو که نمیشه، باید زیپ بشه و ارسال بشه. دستورات ایمیل کردن رو نمیدونم و تا حالا هم ندیدم کسی این جور کاری کرده باشه.
چطور میشه همزمان چند فایل عکس رو انتقال داد به پوشه های مختلف
سلام من یه فایل بت برای رمز گذاری روی پوشه ساختم
بعد که ویندوزم رو عوض کردم دیگه این فایل بت کار نمیکنه و اینکه محتویات اون پوشه خیلی مهم هستش
برای باز شدنش و برداشتن محتویات پوشه باید چه کار کرد؟
سلام من یه فایل بچ می خوام که اون فایل وو هر پوشه ای باشه ، فرمت های خاصی رو از ۱ تا آخر اون فایل نام گذاری کنه .
مثلا من تویه یه فایلم ، ۱۰۰۰ تا عکس دارم اسماشون می خوام مرتب از یک تا الی آخر باشه . بیام فایل بچ رو بزارم تو فولدر و کلیک کنم خودش تمامی فایل ها رو تا آخر مرتب کنه .
در ضمن فقط فرمت ای خاصی رو اینطوری کنه
مثلا من توی همون فولدرم ۱۰۰ تا فیلم هم دارم ولی می خواهم فقط عکس ها رو اینطوری کنه
فقط مثلا فایل هاب فرمت png رو به ترتیب اعداد نام گذاری کنه
اگه میشه می تونید کدش رو به من بفرستید؟؟
ایمیل کنید ممنون میشم .
حالا اگه بخوام قبل اعداد هم مثلا یک متنی بنویسم ؛
مثلا ؛
Aks1.png
Aks2.png
Aks3.png
Aks4.png
الی آخر
ویندوز خودش کردنی عدد رو توی پارانتز می زاره خوشم نمیاد .
سلام
برای تغییر نام به شکل دلخواه باید از برنامههای تغییر نام پیشرفته استفاده کنید. سرچ کنید زیاده و بعضیاش هم رایگانه.
قبلاً یه برنامهای به اسم Advanced file Renamer فکر میکنم بود که برای این جور کارهایی استفاده کردم.
سلامی دوباره
اگه بخواهم همونجوری همه ی فایل ها رو به جای تغییر نام ، آیکونشون رو تغییر بده چی …
یه فولدر دارم توش ۵۰۰ تا فولدر دیگه هم هستن . می خوام آیکون اون ۵۰۰ تا فولدر رو به یک آیکون خاصی تو یه پوشه ی دیگه تغییر بدم .
اینجوری چیکار باید بکنم
طبیعتا تغییر آیکون ۵۰۰ تا فولدر یک هفته وقت می بره
میشه اینم ایمیل کنید
ممنون
سلام و خسته نباشید .. من میخوام یه فایل بت بسازم که اول cmd و با run az administrator باز کنه و دو دستور زیر و اجرا کنه
ROUTE ADD 182.0.0.0 MASK 255.0.0.0 182.X.X.X -p
Route add 10.0.0.0 Mask 255.0.0.0 182.X.X.X -p
ممنونم اگه راهنماییم کنید
سلام من یک فایل bat نوشتم و تبدیل کردم به bat . ولی وقتی روی آن کلیک می کنم و از قسمت ادمین ران می کنم فایل اجرا نمی شود و قطع می شود . مشکل از کجاست . لطفا راهنمایی کنید .