ساخت یک Batch File به منظور بهینه سازی سیستم برای کارهای متفاوت

شما روزانه کارهای مختلفی با سیستمتون انجام می دید؛ وبگردی، بازی های رایانه ای، طراحی، استفاده از نرم افزار مختلف و … در این میان مطمئنا در هنگام فعالیت های مختلفتان نیازی به یک سری از سرویس ها و نرم افزارهای در حال اجرا نیست مثلا وقتی در حال بازی هستید نیازی به اجرا بودن نرم افزار مدیریت دانلود، مترجم، سرویس آپدیت ویندوز، حالت اسکن میل و وب آنتی ویروس و … نیست و اجرا بودن این موارد تنها باعث مصرف بیش از حد رم شما می شود. در این مطلب قصد داریم با ساخت دو Batch File تنها با یک کلیک سرویس ها و نرم افزارهای مدنظرمون رو غیرفعال کنیم و بالعکس.
از سری آموزش های داس و Batch Script : خط فرمان (Command Prompt چیست؟، Batch File چیست؟، دستور Net، دستور Taskkill، دستور Start، دستور Echo و Echo off، علامت @
محیط خط فرمان (command Prompt) چیست؟
اگر به run رفته و عبارت cmd را تایپ کنید و اینتر بزنید وارد محیطی به نام command prompt یا همان خط فرمان می شویم. در این محیط که یک سری از دستورات سیستم عامل داس در آن اجرا می شود همان عملیات هایی که با رابط گرافیکی ویندوز انجام می دهیم با دستورات اجرا می کنیم. مثلا برای وارد شدن به یک فولدر از دستور cd استفاده می کنیم و … شاید بگویید با وجود ویندوز دیگر چه نیازی به این کارهاست؟ در جواب باید بگوییم کارهایی با command prompt می توان انجام داد که در ویندوز قادر به اجرای آن ها نیستیم. نمونش اجرای Batch Script ها است.
Batch File چیست؟
Batch File یک برنامه نیست بلکه فایلی با پسوند bat یا com بوده که حاوی یک سری از دستورات محیط خط فرمان هستش ضمن اینکه خودش هم دستورات مخصوصی داره. در Batch File ، دستورات پشت سر هم اجرا شده و چون به زبان ماشین نزدیک اند با قدرت و سرعت بیشتری عمل می کنن.
در ادامه می خواهیم یک Batch File برای هدف مدنظرمان بنویسیم.
ما برای قطع کردن سرویس ها از دستور net به صورت زیر استفاده می کنیم.
net stop "نام سرویس"
و برای فعال کردن سرویس به صورت زیر:
net start "نام سرویس"
برای پی بردن به نام اختصاری سرویس ها می توانید در run عبارت services.msc را نوشته و اینتر بزنید یا آنکنه در task manager و در تب services سرویس های در حال اجرا و متوقف شده را مشاهده کنید.

در هنگامی که با اینترنت کار نمی کنم و در حال کار با نرم افزار یا بازی هستم به نظرم اجرای سرویس های آپدیت ویندوز، Schedule ویندوز، avast! Web Scaer، avast Mail Scaer، سرویس گزارش ارور و سرویس ثبت وقایع بی فایده است. می خواهیم دستور متوقف شدن آنها را در یک Batch File بنویسیم. یک ویرایشگر متن مانند Notepad ویندوز را باز کرده و دستورات زیر را وارد کنید.
net stop "wuauserv"
net stop "Schedule"
net stop "eventlog"
net stop "avast! Web Scaer"
net stop "avast Mail Scaer"
net stop "WerSvc"
برای batch File دستوری به نام echo off وجود داره که باعث میشه دستوراتی که نوشتیم در command prompt نمایش داده نشه و آن را بالای تمام فرمان ها قرار می دیم. البته ایشون! (echo off رو میگم) همه دستورات رو پنهان می کنه غیر از خودش! پس برای از پنهان کردن خودش قبلش علامت @ رو قرار می دیم. تا اینجا Batch File مون به صورت زیر شده:
@echo off
net stop "wuauserv"
net stop "Schedule"
net stop "eventlog"
net stop "avast! Web Scaer"
net stop "avast! Mail Scaer"
net stop "WerSvc"
حالا می خواهیم نرم افزارهایی (پروسه ها) که نیازی بهشون ندارم رو ببندم. برای قطع یک پروسه از دستور taskkill استفاده می کنیم. این دستور سوییچ های زیادی داره که یکیش /f هستش. این سوییچ به معنی “اجبار برای بستن” است البته با این کار تنظیمات نرم افزار ذخیره نمیشه. سوییچ دیگر /im هستش که مخفف image name است. اصولا همیشه باید این سوییچ رو به کار ببریم و بعدش نام پروسه رو بنویسیم.
taskkill /im "نام پروسه"
همچنین در زمانی که با اینترنت کار نمی کنم نیازی نمی بینم اینترنت دانلود منیجر، پروسه های تابعش، فیدخوان snarfer و مترجم بابیلون باز باشه پس با اضافه کردن دستورات زیر در Batch File مون این پروسه ها رو قطع می کنیم.
taskkill /im "IDMan.exe"
taskkill /im "IEMonitor.exe"
taskkill /im "Babylon.exe"
taskkill /im "snarfer.exe"
در نهایت محتویات فایل به صورت زیر است:
@echo off
net stop "wuauserv"
net stop "Schedule"
net stop "eventlog"
net stop "avast! Web Scaer"
net stop "avast Mail Scaer"
net stop "WerSvc"
taskkill /im "IDMan.exe"
taskkill /im "IEMonitor.exe"
taskkill /im "Babylon.exe"
taskkill /im "snarfer.exe"
از منوی file گزینه save as رو انتخاب کرده و فایل رو با نام دلخواه و پسوند .bat ذخیره کنید. مطابق شکل زیر.

حالا به همین شکل Batch File مربوط به اجرای سرویس و پروسه ها رو می سازیم. دقت کنید که به جای net stop از net start و به جای taskkill از start استفاده می کنیم.
@echo off
net start "wuauserv"
net start "Schedule"
net start "eventlog"
net start "avast! Web Scaer"
net start "avast! Mail Scaer"
net start "WerSvc"
start "C:Program FilesBabylonBabylon-ProBabylon.exe"
start "C:Program FilesInternet Download ManagerIDMan.exe"
start "C:Program FilesSnarfwareSnarfersnarfer.exe"
توجه:
در صورتی که از ویندوز ۷ استفاده می کنید و UAC فعال است باید این Batch File ها در حالت دسترسی adminstrator اجرا شوند. برای اینکار می توانید از فایل ها یک شورتکات ساخته و بر روی آن راست کلیک کنید. Properties را انتخاب کرده و از آنجا به advance بروید و تیک اجرا در حالت دسترسی adminstrator رو بزنید.

http://stob.blogfa.com/post/172
Sign up
|
|
often i have to create map drive where i specify machine and user credential. now i like to know can we write a batch file which will create map drive and where i provide all details like pc and folder location and user credentials etc. i got one as follows but i think this is not one which i require. please guide me. thanks
net use \\ password /USER:username
@echo Create new L: drive mapping
@net use L: \network path /persistent:yes
@echo Create new K: drive mapping
@net use K: \network path /persistent:yes
:exit
if i do this way...then does it work
net use y: \192.168.7.15$Dtestfolder password /USER:username /PERSISTENT:YES
please guide.....the syntax is ok?
batch-file network-drive
|
| |
|
|
|
Answer of the Mou's query: If a map drive called Z exist in that pc then what will happen? can we write batch file like if a specific map drive exist then discoect it and recoect it again.
The solution of this problem is that You can simply map the share without assigning a drive letter. It is then mapped anonymously, only by its remote UNC path. This way you can also remove the mapping by specifiying only its remote name.
@echo off
net use \192.168.7.15testfolder password /user:domainusername /savecred /p:yes
REM Do your stuffs here.....
net use \192.168.7.15testfolder /delete
Answer of the Thomas's query: How to discoect and coect map drive by batch file.
If you simply want to discoect and re-coect a map drive, do like this:
@echo off
net use z: /delete
net use z: \192.168.7.15testfolder password /user:domainusername /savecred /p:yes
|
http://stackoverflow.com/questions/
موضوعات مرتبط: commands
برچسب:
نویسنده: کوروش رضوانی
تاريخ: دوشنبه
19 تير
1396 ساعت: 16:44