برگزیده های پرشین تولز

سوال فنی ........bat file در ویندوز ......اساتید کمک

nanoware

Registered User
تاریخ عضویت
19 آگوست 2005
نوشته‌ها
172
لایک‌ها
1
Windows Script Host
You can use Windows Script Host to run scripts that are written in JScript and VBScript, in addition to any Windows Script-compatible scripting engines.
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
همونطور که نانوویر فرمودن WSH یک تکنولوژی اسکریپتینگ هست که برای ساختن سریع اپلیکیشنهای کوچیک خیلی مفید هست. علاوه بر vbscript و javascript زبانهایی نظیر perl-rexx-python رو هم پشتیبانی میکنه!
 

Ames

Registered User
تاریخ عضویت
6 دسامبر 2004
نوشته‌ها
122
لایک‌ها
0
محل سکونت
Tehran
ممنون. فایلهاش با چه پسوندی ذخیره میشن؟ چطور تفسیر میشن؟
میشه یه نمونه فایلش رو اینجا بذارین؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
شما این کد رو توی یک فایل به اسم test.vbs ذخیره و در محیط command prompt اجراش کن (اسم کاملش رو بزن)
اگر یک پیغام OK داد معنیش اینه که WSH روی سیستم شما نصب هست (که معمولا" هست). بعد خبرش رو بده که بریم مرحله بعد.
کد:
WScript.Echo "OK"

پسوند فایلها همون vbs و js و البته wsf هست.
 

Ames

Registered User
تاریخ عضویت
6 دسامبر 2004
نوشته‌ها
122
لایک‌ها
0
محل سکونت
Tehran
انجام دادم. OK بود. مرحله بعدی چیه؟ ;)

.vbs و .js که معلومه مال چه ربانهایی هستند. اما .wsh چطور؟ آیا این پسوند رو برای استفاده هر زبانی در WSH می توان به کار برد؟
من همون فایل رو rename کردم به test.wsh کنار آیکونش علامت shortcut اومد و هنگام اجرا هم error میده.
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
این wsf مخفف windows scripting file هست و یک سری ملاحظات داره - مثلا" اول باید job تعریف کنی. ضمنا" مخلوطی از زبانها رو هم میشه استفاده کرد و خیلی کارهای دیگه.

خوب مقدمتا" با کدوم یکی بیشتر آشنایی داری که با همون ادامه بدیم: vbscript - javascript
 

Ames

Registered User
تاریخ عضویت
6 دسامبر 2004
نوشته‌ها
122
لایک‌ها
0
محل سکونت
Tehran
این wsf مخفف windows scripting file هست و یک سری ملاحظات داره - مثلا" اول باید job تعریف کنی. ضمنا" مخلوطی از زبانها رو هم میشه استفاده کرد و خیلی کارهای دیگه.

خوب مقدمتا" با کدوم یکی بیشتر آشنایی داری که با همون ادامه بدیم: vbscript - javascript

جالبه. من با هردوش آشنام. ولی ترجیحاً میخوای با vbscript کار کنیم. :) حالا قدم بعدی چیه؟
میگم اگه میخواین لطفن کنینو مبحث آموزشش رو تا یه جایی شروع کنین چطوره یه threat دیگه بزنیم که اگه کس دیگه خواست بتونه بعداً به راحتی از مباحثش استفاده کنه؟
 

nanoware

Registered User
تاریخ عضویت
19 آگوست 2005
نوشته‌ها
172
لایک‌ها
1
4.یه کار دیگه ای که مدتهاست میخوام یاد بگیرم با bat file بکنم اینه: فرض کنید یه سری فایل داریم که همشون تو یه فولدر ذخیره شدن و هر کدوم اسم های مختلفی دارن. حالا میخوایم مثلاً به نحوی ساختار بندی شده اسم همه اونا رو تغییر بدیم. مثلاً می خوایم اسم همه اونا به این نحو تغییر داده بشه که اولِ اسم همه فایلها لغت "file" نوشته بشه، بعدش از 1 تا هر تعدادی فایل داریم، شماره فایل بیاید و در آخر پسوند فایل هم بدون تغییر باقی بمونه. یعنی چیزی مثل این: file1.jpg - file2.gif - file3.txt - file4.jpg - و الی آخر. شما براش راهی بلدید؟ (که مسلماً بلدید، میشه بگید؟)

باز هم خیلی خیلی از وقتی که همه دوستان میذارن متشکرم. - (ایشالا عروسیتون :D)

با اجازه از جناب Mazoolagh، میبخشید جسارت میکنم!
برای مشکل بالا این راه حل مناسب نیست؟:
فالایی که میخواین اسمشونو عوض کنید رو سلکت کنید، right click و rename بزنید
:before rename

353599k.png


:after rename

2d76m4n.png
 

Ames

Registered User
تاریخ عضویت
6 دسامبر 2004
نوشته‌ها
122
لایک‌ها
0
محل سکونت
Tehran
دوست عزیز، خیلی ممنون که وقت گذاشتین و با حوصله سعی کردین کمک کنید.
راستش من قبلاً این روش رو تست کرده بودم، ولی میخوام ساختار اسامی فایلها دست خودم باشه. به همین خاطر این روش دیگه جواب گو نیست. البته روش راحتیه.
باز هم ممنون.
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
باید بگم روشی رو که جناب نانویر ارائه کردن من بلد نبودم - این تاپیک از نظر من بیشتر فرصتی برای آشنایی با مباحث و تکنیکهایی هست که تابحال شاید کمتر در فرومهای ایرانی مطرح شده.

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

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
قبل از شروع بهتره مطمئن بشیم که آخرین ورژن wsh رو کامپیوترمون نصب هست. که با نصب آخرین پچ ها و سرویس پک ها معملا" میشه اطمینان داشت که هست.

برای اینکار کافی هست اسکریپت زیر رو اجرا کنیم:

vbscrip : version.vbs
کد:
WScript.Echo WScript.Version & "." & WScript.BuildVersion

javascript : version.js
کد:
WScript.Echo (WScript.Version + "." + WScript.BuildVersion) ;

BuildVersion بستگی به پلتفرم داره (xp-2003 server - 2000 server - ...)
Version باید 5.6 باشه که آخرین ورژن هست. اگر نیست میتونین برای xp/2000 از اینجا دانلود کنین(3.35 مگابایت):
کد:
http://rapidshare.de/files/36163229/WSH5.6.rar

البته مستقیما" از سایت download.microsoft.com هم میتونین دانلود کنین ولی نیاز به گذشتن از سد WGA دارین!
اون فایل rar شامل 2 فایل هست. یک فایل exe آخرین ورژن wsh هست (2006) و یک فایل chm که منوآل wsh و همینطور رفرنس vbscript و javascript هست.

فعلا" اینها رو نصب کنین :d
 

Ames

Registered User
تاریخ عضویت
6 دسامبر 2004
نوشته‌ها
122
لایک‌ها
0
محل سکونت
Tehran
ممنون. version مال من هم 5.6 بود ولی در عین حال دانلود کردم که اون فایل chm رو هم همیشه دم دستم داشته باشم. قدم بعدی چیه؟ :d

راستی یه سئوال : تو سیستم عامل های دیگه مثل Linux یا Mac OS چه چیزی جایگزین این WSH هست؟ آیا سیستم اسکریپت نویسی مشابه WSH وجود داره که توی همه سیستم عامل ها کار کنه؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
با mac که مطلقا" آشنایی ندارم. در سیستمهای unix based هم بهتره یک متخصص اون نظر بده. ولی من خودم از perl استفاده میکنم.

در قدم اول یک برنامه کوچیک مینویسیم که یک مسیر (آدرس فولدر) رو میگیره و فایلهای اون فولدر رو لیست میکنه.

کد:
Set FSO = CreateObject("Scripting.FileSystemObject")
FOLDER_PATH = InputBox("Folder")
Set FOLDER = FSO.GetFolder(FOLDER_PATH)
For Each FILE in FOLDER.files
	WScript.Echo FILE.name
Next
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
خوب فکر کنم اگر توی رفرنسی که معرفی کردم عبارتهایی رو که در این کد مشاهده میکنین جستجو کنین دیگه نیازی به من نداشته باشین.:cool:
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
و نهایتا" اینهم جواب مساله :

کد:
Set FSO = CreateObject("Scripting.FileSystemObject")
FOLDER_PATH = InputBox("Folder")
Set FOLDER = FSO.GetFolder(FOLDER_PATH)
N = 0
For Each FILE in FOLDER.files
	FileName = split(FILE.name,".")
	N = N + 1
	FILE.move (FOLDER_PATH & "\" & FileName(0) & "_" & N & "." & FileName(1))
Next
 

Ames

Registered User
تاریخ عضویت
6 دسامبر 2004
نوشته‌ها
122
لایک‌ها
0
محل سکونت
Tehran
خیلی خیلی ممنون mazoolagh جان. باز هم مثال جالبی داشتی بذار لطفاً. بیشتر دوست دارم مثال های مختلف رو ببینم. از روی مثال آدم خیلی راحت تر یاد میگیره.
 
بالا