متغیر ها در بچ اسکریپت
در فصل اول با عنوان آموزش ساخت فایل bat نحوه ایجاد یک فایل bat ساده را توضیح دادم، در این فصل شما را با متغیر ها در بچ اسکریپت (Variables) آشنا خواهم نمود. اینکه متغیر چیست و چگونه میتوان با دستور set در فایل bat متغیر ایجاد نمود. همچنین با متغیر های محیطی و Modifier ها آشنا خواهید شد. همراه با نووا بلاگ باشید.
پیشنهادی: اگر به یاد گیری زبان برنامه نویسی Batch Script علاقه دارید حتما به صفحه آموزش بچ اسکریپت سر بزنید.
متغیر یا Variable چیست؟
متغیر یکی از اصلی ترین عناصر هر زبان برنامه نویسی میباشد. اگر از متغیر استفاده نشود، برنامه نویسی هم ممکن نخواهد بود. حال متغیر یا Variable چیست؟ به زبان ساده متغیر یک جعبه با یک نام مشخص است که با صدا زدن نام جعبه به محتوای درون آن دسترسی پیدا میکنیم. برنامه نویسان، زمانی از جعبه متغیر استفاده میکنند که محتوای درون آنرا ندانند. (در واقع محتوای درون جعبه قابل تغییر یا متغیر است) برای مثال:
فرم ثبت نام یک سایت را در نظر بگیرید، معمولا در هر فرمی از کاربر اطلاعاتی درخواست میشود: مثل نام، نام خانوادگی، رمز عبور، آدرس ایمیل و … اگر حدس شما این است که هر کدام از این ورودی ها یک متغیر هستند، کاملا درست حدس زده اید. در واقع برنامه نویس، اطلاعات هویتی کاربر را نمیداند از اینرو از جعبه های متغیر استفاده میکند تا اطلاعات کاربر را درون آنها قرار داده تا در مکان های مورد نیاز سایت استفاده کند. (مثل نمایش اطلاعات هویتی شما در شبکه های اجتماعی)
متغیر ها در بچ اسکریپت
در بچ اسکریپت برای ایجاد متغیر از دستور set استفاده میشود و برای دسترسی به محتوای متغیر ها نام آنها را بین دو علامت % قرار میدهیم. (برای مثال: %TEMP%) به طو کلی در بچ اسکریپت سه نوع متغیر وجود دارد:
متغیر های معمولی (Variables): مثل باقی زبان های برنامه نویسی، زمانیکه در بچ اسکریپت یک متغیر با دستور set ایجاد میکنید متغیر عادی محسوب میشود.
متغیر های محیطی (Environmental Variables): در سیستم عامل ویندوز متغیر های محیطی از پیش توسط سیستم عامل ایجاد شده اند و محتوای آنها اطلاعات مرتبط با کاربر، سیستم عامل و یا سخت افزار است. مثلا متغیر %Temp% که محتوای آن مسیر پوشه Temporary کاربر فعال است.
متغیر های ویژه (Special Variables): اندکی زود است تا با متغیر های ویژه که به Modifiers ها معروف هستند آشنا شوید. تنها کافیست بدانید شما متغیر های ویژه را نمیسازید و فقط از آنها استفاده میکنید.
همانطور که گفتم برای ساخت Variable باید از دستور SET استفاده نمود. نحوه ساخت Variable به این صورت است: ابتدا دستور Set را وارد کنید، سپس نام Variable را مشخص کرده و پس از آن از یک علامت مساوی برای مشخص نمودن محتوای متغیر استفاده کنید و مقدار متغیر را در جلوی علامت مساوی بنویسید. برای مثال:
set web=https://novablog.ir
در مثال بالا یک متغیر با نام Web و مقدار https://NovaBlog.ir ایجاد شده است.
برای نمایش محتوای Variable ها میتوانید از دستور echo استفاده کنید. ابتدا دستور Echo را تایپ کنید سپس اسم variable را در بین دو علامت %% قرار داده تا محتوای Variable به صورت متنی نمایش داده شود. برای مثال:
echo %web%
همانطور که قبل تر توضیح متغیر های وجود دارد که توسط ویندوز ساخته شده اند و به آنها متغیر های محیطی گفته میشود. اگر میخواهید کلیه متغیر های فعال و قابل استفاده در ویندوز را مشاهده کنید باید دستور set را در خط فرمان ویندوز وارد کنید. برای مثال:
set
حال اجازه دهید از متغیر ها در یک فایل بچ استفاده کنیم.
@echo off Title Why Use Variables Set LS=D:\Data\Backup\Linux\Softwares\ XCOPY /s F:\ %LS% XCOPY /s G:\ %LS% DIR %LS%
در اسکریپت بالا ابتدا با دستور SET یک Variable با نام LS ساخته شد که محتوای آن D:\Data\Backup\Linux\Softwares\ میباشد. سپس در دستورات بعد بجای تایپ مسیر طولانی از Variable آن مسیر یعنی %LS% استفاده شد. که دقیقا معادل همان مسیر است.
متغیر های Local و Global
شما میتوانید از Variable ها در دو حالت Local و Global استفاده کنید در حالت Local یا محلی، Variable ها محدود به بخشی از فایل BATCH میباشند که با دستور SETLOCAL شروع شده و با دستور ENDLOCAL یا EOF در فایل BATCH به پایان میرسد. یعنی پس از EOF یا دستور ENDLOCAL متغیر های ساخته شده از بین میروند. اما Variable های Global در کل Session فایل Batch وجود دارند و میتوان از آنها استفاده نمود. به مثال زیر توجه کنید:
@echo off Title Global Variable VS Local Variable color 0A mode CON LINES=20 COLS=80 echo %TEMP% PAUSE SETLOCAL SET TEMP=NOW ITS BECOME LOCAL ECHO %TEMP% PAUSE ENDLOCAL ECHO %TEMP% PAUSE
نتایج اجرای اسکریپت:
همانطور که در اسکریپت بالا مشاهده میکنید ابتدا با دستور ECHO محتوای Variable یا متغیر %TEMP% نمایش داده شده سپس با دستور SETLOCAL مشخص شده از این نقطه به بعد کلیه Variable های که قرار است ساخته شوند باید Local یا محلی باشند پس از آن با استفاده از دستور SET محتوا یا مقدار متغیر %TEMP% به “Now Its Become Local” تغییر داده شده و دوباره با دستور ECHO محتوای جدید متغیر %TEMP% نمایش داده میشود (NOW ITS BECOME LOCAL) و پس از آن دستور ENDLOCAL اضافه شده تا عملکرد Variable های Local به پایان رسد و باز با دستور ECHO مقدار اصلی متغیر %TEMP% نمایش داده میشود.
به طور کلی اگر از دستورات SETLOCAL و ENDLOCAL در فایل Batch استفاده نشود کلیه Variable ها به صورت Global بوده و میتوانند توسط دیگر فایلهای Batch دیده و ویرایش شوند. برای درک بهتر این موضوع بگذارید آنرا برایتان با یک مثال روشن کنم:
فرض کنید سه فایل Batch دارید که در هر کدام از آنها یک Variable با نام Title ساخته اید اما مقدار های متفاوتی به آنها داده اید. در صورتی که از دستورات SETLOCAL و ENDLOCAL در هر یک از این فایلهای Batch استفاده نکرده باشید مقدار Variable های هر یک از این فایلها روی دیگری اثر گذاشته و مقدار Variable باقی فایلهای Batch را نیز تغییر میدهند.
در هر فایل Batch میتوان 32 بار از دستور SETLOCAL استفاده نمود. یعنی مثلا میتوان به Variable یا متغیر Title سی و دو مقدار متفاوت را در یک فایل Batch اطلاق کرد بدون اینکه مقدار هیچ کدام از آنها روی دیگری اثر بگذارد.
دستور SETLOCAL دارای چهار پارامتر است که این پارامتر ها عملکرد و توانایی های فایل Batch را تغییر میدهند. این پارامتر ها شامل EnableExtensions – DisableExtensions – EnableDelayedExpansion – DisableDelayedExpansion میباشند. در ادامه به بررسی تک تک این پارامترها میپردازیم:
- کار پارامتر EnableExtensions افزایش تواناییهای دستورات و استفاده از دستوراتی میباشد که در حالت DisableExtensions نمیتوان از آنها در فایل Batch استفاده نمود. این دستورات شامل موارد زیر میباشند:
MD – MKDIR | CD – CHDIR | COLOR | DEL – ERASE |
SET | POPD | PUSHD | PROMPT |
FOR | IF | ENDLOCAL | SETLOCAL |
START | GOTO | SHIFT | CALL |
FTYPE | ASSOC |
به صورت پیشفرض پارامتر EnableExtensions در فایل Batch فعال میباشد و برای غیر فعال سازی آن باید از دستور SETLOCAL به همراه پارامتر DisableExtensions استفاده کنید.
- کار پارامتر EnableDelayedExpansion باز کردن Variable ها در زمان خوانده شدن میباشد نه در زمان تجزیه. به صورت عادی Variable ها در زمان تجزیه باز میشوند. اما با استفاده از پارامتر EnableDelayedExpansion میتوان Variable ها را با علامت تعجب نوشت و آنها را در زمان خوانده شدن استفاده نمود.
برای درک بهتر عملکرد پارامتر EnableDelayedExpansion به اسکریپت زیر توجه کنید:
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION TITLE ENABLEDELAYEDEXPANSION MODE CON COLS=80 LINES=25 COLOR 0A SET VAR=NORMAL VARIABLE SET VAR=DELAYED VARIABLE & ECHO %VAR% VS !VAR! PAUSE
نتایج اجرای اسکریپت:
NORMAL VARIABLE VS DELAYED VARIABLE Press any key to continue . . .
همانطور که در اسکریپت بالا مشاهده میکنید ابتدا با دستور SET یک Variable با نام VAR و محتوای NORMAL VARIABLE ساخته شده سپس در خط بعد دوباره با دستور SET یک Variable دیگر با همان نام VAR درست شده که اینبار محتوای آن DELAYED VARIABLE میباشد. پس از مقدار DELAYED VARIABLE یک علامت & گذاشته شده تا بتوان در همان خط یک دستور دیگر هم اضافه نمود، که آن دستور ECHO میباشد در جلوی دستور ECHO یک بار %VAR% تایپ شده که در واقع همان Variable عادی است سپس یکبار هم !VAR! تایپ شده که یک Delayed Variable میباشد. اگر بخش نتایج اجرای اسکریپت را با دقت مشاهده کنید میبینید که محتوای متغیر %VAR% جمله NORMAL VARIABLE میباشد اما محتوای متغیر !VAR! جمله DELAYED VARIABLE است.
این بدان معناست که با استفاده از ویژگی EnableDelayedExpansion میتوان از محتوای یک Variable در هنگام خوانده شدن آن Variable با علامت تعجب استفاده نمود.
برای درک بهتر کاربرد EnableDelayedExpansion یک فایل Batch بسازید سپس با استفاده از دستور SET یک Variable درست کنید و پس از آن با یک علامت & در همان خط دستور ECHO را تایپ کنید و در جلوی دستور ECHO نام Variable ساخته شده را بنویسید. برای مثال:
SET VARIABLE=ITS BE A NORMAL VARIABLE & ECHO %VARIABLE%
معمولا بیشترین کاربرد پارامتر EnableDelayedExpansion برای دستورات IF و FOR میباشد که در فصلهای بعد به آنها اشاره خواهم نمود.
دستور SET دارای دو پارامتر /A و /P میباشد که پارامتر /A برای محاسبه کردن چند عدد با هم استفاده میشود و پارامتر /P برای اضافه کردن مقدار Variable به صورت دستی توسط کاربر پایانی استفاده میشود. یعنی پس از اجرای فایل Batch از کاربر پرسیده میشود که مقدار Variable را وارد کند.
انجام محاسبات با دستور SET
همانطور که گفتم پارامتر /a در دستور set برای محاسبات استفاده میشود. نحوه استفاده از پارامتر /a بسیار ساده است کافیست بعد از پارامتر /a نام Variable خود را مشخص کنید سپس یک مساوی بگذارید و بعد از آن دو عدد را با علامت + یا – یا * و یا / تایپ کنید و حاصل آن را در خط بعد مشاهده کنید. برای مثال:
مثالی از جمع کردن دو عدد:
SET /A RESULT = 10 + 30
مثالی از کسر کردن دو عدد:
SET /A RESULT = 30 - 10
مثالی از ضرب کردن دو عدد:
SET /A RESULT = 10 * 30
مثالی از تقسیم کردن دو عدد:
SET /A RESULT = 30 / 10
جدا از محاسبه کردن عدد ها شما میتوانید خود Variable ها را هم در محاسبه استفاده کنید. برای اینکار کافیست خود Variable را به همراه علامت + یا – یا * و یا / در بین دو علامت “” قرار دهید. برای مثال:
SET /A "RESULT+" = 10 SET /A "RESULT-" = 10 SET /A "RESULT/" = 10 SET /A "RESULT*" = 10
شما میتوانید با یک دستور SET چندین عمل محاسبه را پشت سر هم انجام دهید. برای مثال:
SET /A RESULT = 150 * 30 * 40 - 200 -200 + 400
وارد کردن Interactive مقدار یا محتوای Variable ها
شما میتوانید با استفاده از پارامتر /P در دستور SET اضافه نمودن محتوا یا مقدار Variable های خود را به عهده شخص اجرا کننده فایل Batch بگذارید. یعنی مثلا یک Variable بسازید که محتوای آنرا کاربر پایانی یا همان شخص اجرا کننده فایل Batch وارد کند. برای درک بهتر این موضوع به اسکریپت زیر توجه کنید:
@echo off Title MAKE MENU WITH SET COMMAND Color 0F Mode CON LINES=25 COLS=80 Echo PLEASE ENTER YOUR USERNAME Set /P USERNAME= TYPE YOUR NAME: Echo PLEASE ENTER YOUR PASSWORD Set /P PASSWORD= TYPE YOUR PASSWORD: Echo Your username is %USERNAME% and your password is %PASSWORD% Pause
نتایج اجرای اسکریپت:
در اسکریپت بالا دو Variable با نام های USERNAME و PASSWORD ساخته شده که مقدار یا محتوای این Variable ها را باید کاربر پایانی وارد کند. در این مثال فرد اجرا کننده اسکریپت برای متغیر USERNAME کلمه TMLMANAGER را وارد نموده و برای متغیر PASSWORD کلمه JUSTLEARN را اضافه نموده است. سپس با استفاده از دستور ECHO پیامی نمایش داده که از Variable های USERNAME و PASSWORD در آن استفاده شده تا آنچه کاربر پایانی به عنوان مقدار یا محتوای این دو Variable وارد میکند نمایش داده شوند.
معمولا بیشتر مواقع از دستور SET /P برای ساخت منو در فایل Batch استفاده میشود تا کاربر اجرا کننده فایل Batch حق انتخاب داشته باشد.
متغیر های ویژه یا Special Variable
در Batch Script جدا از Variable های از پیش ساخته شده همانند %TEMP% – %USERNAME% و … ، Variable های دیگری هم وجود دارند که به آنها Special Variable میگویند. (البته خود من نام Special Variable یا متغیر ویژه را برای تفکیک این متغیر ها از متغیر های عادی گذاشته ام تا کاربران فرق این دو نوع Variable را از هم تشخیص دهند. معمولا به Special Variable ها Idiom یا Modifier هم گفته میشود.) این Variable ها به شما کمک میکنند تا مثلا مسیر اجرای فایل Batch خود را پیدا کنید یا اینکه نام فایل Batch اجرا شده را مشاهده کنید. در جدول زیر فهرست بعضی از Modifier ها را با عملکرد آن توضیح داده ام:
نام Variable | عملکرد Variable |
%~0 | مشخص کننده Argument صفر یا نام خود فایل Batch اجرا شده. |
%~D | مشخص کننده Letter درایوی (Drive) که فایل Batch از آن درایو اجرا شده (مثلا C:\). |
%~P | مشخص کننده مسیری (Path) که فایل Batch از آنجا اجرا شده است. |
%~F | نام و مسیر کامل (Full Qualified Path) فایل Batch اجرا شده را مشخص میکند. |
عدد صفر به همراه علامت درصد (%0) در واقع Argument صفر میباشد که مشخص میکند نام فایل Batch اجرا شده چیست. همانطور که در جدول بالا مشاهده میکنید گزینه %~0 در واقع همان فایل Batch اجرا شده میباشد. و باقی موارد مثل D و P و F مربوط به نمایش مسیر میباشند. یعنی باید گزینه های بعدی را همراه با عدد 0 استفاده کنید. برای مثال:
@ECHO OFF TITLE SPECIAL VARIABLE AND ARGUMENTS COLOR 0A MODE CON COLS=80 LINES=25 ECHO FOR ONLY TO SHOW DRIVE LETTER USE FOLLOWING SYNTAX ECHO %~D0 ECHO FOR DRIVE LETTER PLUS PATH USE THE FOLLOWING SYNTAX ECHO %~DP0 ECHO FOR SHOW FULL QUALIFIED PATH USE THE FOLLOWING SYNTAX ECHO %~F0 PAUSE
نتایج اجرای اسکریپت:
همانطور که در اسکریپت بالا مشاهده میکنید میتوان از Variable های ویژه هم به صورت ترکیبی استفاده نمود و هم به صورت انفرادی. مثلا برای نمایش نام درایو به همراه آدرس آن باید حرف D را در کنار حرف P گذاشت تا نتیجه مورد نظر به دست آید. (%~DP0)
زمانیکه یک فایل Batch را به صورت Run As Administrator اجرا میکنید در صورتی که UAC ویندوز فعال باشد برنامه به صورت خودکار از آدرس C:\Windows\System32 اجرا میشود. برای جلوگیری از تغییر مسیر اجرای برنامه میتوان از دستور CD /D %~DP0 در خط اول فایل Batch استفاده نمود با اضافه نمودن این دستور مسیر اجرای فایل Batch از C:\Windows\System32 به مسیر جاری فایل Batch تغییر میکند. برای مثال:
@ECHO OFF TITLE Run As Administrator COLOR 0A MODE CON COLS=80 Lines=25 ECHO %CD% PAUSE CD /D %~DP0 ECHO %CD% PAUSE
نتایج اسکریپت اجرا شده:
اسکریپت بالا به صورت Run As Administrator اجرا شده، در این اسکریپت ابتدا با دستور ECHO %CD% مسیر جاری اسکریپت نمایش داده میشود که در آدرس C:\Windows\System32 میباشد سپس با دستور CD /D %~DP0 مسیر اسکریپت از C:\Windows\System32 به مسیری که فایل Batch در آنجا قرار دارد تغییر پیدا میکند (C:\Users\Home\Desktop) و در آخر دوباره با دستور ECHO %CD% مسیر جاری فایل Batch نمایش داده میشود.
35 پاسخ به “متغیر ها در بچ اسکریپت”
سلام ، ببخشید اگه میشه کاربرد سوئیچ /p رو در بچ فایل ها بگین منتظرم ، خیلی ممنون
سلام محمدرضا جان
با سویچ /p میتونید محتوای یک متغیر رو از کاربر درخواست کنید. برای مثال:
set /p Name=Please enter your name
همه این موارد رو بهمراه مثال در کتاب آموزش Batch Script توضیح دادم.
سلام می خوام بدونم راهی وجود داره که به جای استفاده از راست کلیک و گزینه run as administrator و بدون پسورد administrator، برنامه ای را با خط فرمان و به عنوان administrator اجرا کرد؟ ممنونم از مطالب مفیدتان. در اسرع وقت منتظر جوابتان هستم.
سلام عزیز
اگر منظورتون اینکه بدون وارد کردن رمز حساب ادمین بشه دسترسی ادمین داشت جواب خیر
ولی اگر بخواهید به صورت قانونی و فقط از طریق خط فرمان اینکار رو انجام بدید باید از دستور زیر استفاده کنید.
موفق باشید
سلام. لطفا میشه توضیح بدید که جطور می توان string بخصوصی را از داخل یک فایل txt به یک متغیر تخصیص داد.
مثلا کلمه working از داخل فایل متنی test.txt با محتوای زیر قرار بگیرد در متغیر var= working
.I love working CMD
سلام
خیلی ساده نیست و خیل هم پیچیده نیست
از ترکیب دستورات for /f با if و findstr باید استفاده کنید.
مطالب پیشنهادی: دستور for – دستور If
سلام
فصل 4و 2 یکی هستن
سلام ممنونم بابت اطلاع رسانی، اصلاح شد
عزیز سلام و عرض ادب … یک سوال داشتم ، میشه که مقدار متغیر ها رو بدون نوشتن کلمه ی set ، مقداردهی کرد ؟
مثلا من در ابتدای برنامه بنویسم :
set mahdi
و توی یک خط دیگه از برنامه این رو مقداردهی کنم بدون استفاده از کلمه set ، مثلا :
if exist myfolder %mahdi% = 10
یا مثلا
if not %var1% == %var2% %mahdi%=5
یچیزی سبیه همین موارد منظورم هست
سلام
خیر، چنین قابلیتی در بچ اسکریپت وجود نداره و باید متغیر با مقدار ایجاد بشه، و اینکه حتما باید از دستور set استفاده کنید.
سلام علیکم
من یه کد برای ماشین حساب نوشتم
این کد ابتدا عدد اول و عدد دوم و عملگر رو میگیره
با حلقه if عملگر رو شناسایی میکنه
و دستور مورد نظر رو اجرا میکنه
پیش از این که کدها توی حلقه if قرار بگیرن
همه چیز درسته و کار میکنه
اما وقتی کدها رو توی حلقه میذارم
دیگه درست کار نمیکنه
یعنی من نمیتونم یه متغیر رو توی حلقه تعریف کنم؟
کد:
سلام عزیز
نحوه استفاده از دستور if به این شکل نیست، دستور برای اجرای شرطی مورد استفاده قرار میگیره و اصلا elseif نداره فقط else داره که یکبار میتونید ازش استفاده کنید نه چندبار، خیلی ساده میتوستید کد بالا رو بدون نیاز به دستور if بنویسید، برای مثال:
اما اگر هم خواستید از دستور if برای بررسی وضعیت استفاده کنید باید به این صورت عمل کنید:
سلام علیکم
خیلی ممنون
الان برای اینکه ببینیم کاربر حرف n رو برای اتمام کار و حرف y رو برای شروع دوباره نوشته
باید چیکار کرد؟
با توجه به اینکه ممکنه حروف بزرگ وارد کنه
مشکلم فقط توی همین شناسایی هست
بقیه رو نوشتم
راستی جواب پیام قبلی به ایمیلم نیومد
مشکلی پیش اومده؟
سلام
میتونید از دستور if به همراه پارامتر /i برای بررسی متغیر بدون در نظر گرفتن حروف بزرگ و کوچک استفاده کنید، برای مثال:
ممنون
یه سوال
میشه توی حلقه از or یا and استفاده کرد؟
اینجوری:
راستی
جایی هست که این سوییچ ها رو لیست کرده باشه؟
من جستجو می کنم برام حلقه سوئیچ میاره
خواهش میکنم
خیر، ممکن نیست، مطالب صفحه آموزش بچ اسکریپت رو بررسی کنید: آموزش بچ اسکریپت
مطالب مرتبط: علامت ها و کاراکتر ها در بچ اسکریپت
با استفاده از روش بالا چندتا شرط رو میشه تو یک نوشت
سلام استاد عزیز
خیلی ممنون بابت آموزش خوبتون.
خیلی استفاده کردم.
ولی بعضی از قسمت هاش یه جوری بود برای مثال:
گفتید متغیر های محیطی اما نگفتید که چطور میشه ازشون استفاده کرد و کاربردشون چیه.
یا اون قسمت که گفتید متغیر های Local و Global درباره متغیر Global توضیح ندادید و
یا اون قسمت که گفتید دستور setlocal دارای چهار پارامتر است درباره پارامتر چهارم یعنی DisableDelayedExpansion توضیح ندادید.
اگه میشه این مشکلات رو جبران کنید و اگه هم تو متن بود و من متوجه نشدم لطفا بهم بگین.
با تشکر از سایت عالیتون
سلام عزیز
ممنونم باعث خوشحالی 🙂
منظور از متغیر های محیطی، متغیر های هستند که توسط سیستم عامل ایجاد میشن و شما میتونید از محتواشون استفاده کنید. مثل متغیر Temp یا Username
فرق شون رو توضیح دادم متغیر های Global محدود به بحشی از فایل بج نیستند و در همه جای فایل بچ میتونید ازشون استفاده کنید.
یک فایل بچ به صورت پیشفرض روی DisableDelayedExpansion و ویژگی ها که با EnableDelayedExpansion فعال میشه رو نداره
خواهش میکنم موفق باشید
عالی بود اقای برغمدی🙏🙏🙏
ممنونم لطف دارید 🙂
سلام مهندس.ممنون از سایت خوبت.یه سوال دارم از خدمتت.من یه فایل نوت پد دارم که داخلش چند تا شماره تلفن هستش.چجوری میشه توی بچ فایل هر بار یکی از اون شماره ها رو فراخوانی کنم؟؟؟من بچ فایلی نوشتم که به صورت خودکار اکانت جیمیل میسازه و میخوام در قسمت شماره تلفن هر بار یکی از اون شماره تلفن ها رو فراخوانی کنه و تو سایت جیمیل وارد کنه
ببخشید میشه کاربرد پارامتر enabledelayedexpansion رو واضح تر بگید
تا زمانیکه دستور set به صورت کامل اجرا نشه و به سطر بعدی در فایل بچ نره نمیشه از محتوای متغیر ایجاد شده استفاده کرد. با این روش میتونید قبل از رفتن به سطر بعدی مقدار متغیر رو بخونید. این بیشتر تو دستورات for و if و در فانکشن ها کاربدی:
سلام وقتتون بخیر ببخشید من دارم کدی رو می نویسم که ویندوز رو اکتیو کنه .
ولی در اجرا فایل به مشکل می خورم.
ممنون می شم بگیمن که مشکل چیه ؟
سلام
عذرخواهی میکنم، کمی درگیر هستم و نمیتونم کد تون رو بررسی کنم
سلام جناب برغمدی . من از زمان داس با بچ فایل کار میکردم و قعلا هم با اون برنامه نویسی میکنم . اما از سایت شما برام جالب بود . ممنون از سایت زیباتون .
سلام آقای مرادیفر، ممنونم از محبت تون، لطف دارید
سلام روز بخير
خسته نباشي مهندس جان يه جا واقعا گير کردم مزاحم شدم
آيا ميشه يک متغيير با دستور مقدار داد يا اينکه خروجي يک دستور تو يه متغيير گذاشت؟
مثل:
set /p TedadFiles=” Forfiles /p “%Address%” /s /m *.bak /D -100 | Find /c /i “Backup” “
سلام.
بسیار مطلب مفیدی بود و خوب توضیح دادین.
مثالها خوب مطلبو جا انداختن.
ممنون.
سایت قشنگی دارین.
سلام ممنونم از محبت تون 🙂
سلام
ممنون از اموزش عالتون
توضیحات مربوط به local , global کمی گنگ می باشد.
سلام گلوبال یعنی در کل فایل قابل دسترس هست و لوکال به معنی در دسترس بودن فقط در یک بخش از فایل، کلا خیلی قواعد بچ اسکریپت خوب نیست.
استاد جان
پرسش و پاسخ ها هم بسیار مفید هستند، ان شاالله ذخیره اخرت اتون باشه.
ممنوم از محبت تون