پاورشیل پیش گوئی ، جبکہ ، اور دیگر لوپس کیسے کام کرتے ہیں۔

پاورشیل پیش گوئی ، جبکہ ، اور دیگر لوپس کیسے کام کرتے ہیں۔

پروگرامنگ سیکھنے میں ایک اہم پہلا قدم لوپس کے ساتھ کام کرنا ہے۔ شکر ہے ، پاور شیل آپ کی مہارتوں کے ساتھ بڑھتی رہتی ہے۔





اینڈروئیڈ پر پوکیمون ریڈ کھیلنے کا طریقہ

وقت اور کوشش کو بچانے کے لیے آپ موجودہ کمانڈ کو روزانہ لوپس کے اندر استعمال کر سکتے ہیں۔ آپ کے سکرپٹ بھاری لفٹنگ کرتے ہیں جبکہ آپ MakeUseOf پر مزید مضامین پڑھنے کا اہم کام کرتے ہیں!





پاورشیل فار ایچ لوپس: ایڈوانسڈ ڈیٹا ہینڈلنگ کا دروازہ۔

ForEach ForEach-Object کا عرف ہے۔ (ایک عرف محض پاور شیل میں ایک کمانڈ کے لیے ایک شارٹ کٹ ہے۔) پاورشیل ڈیٹا کو سنبھالنے کے طریقے کے بارے میں بات کرنے کا یہ اچھا وقت ہے۔





زیادہ تر جدید پروگرامنگ زبانوں کی طرح ، پاور شیل آبجیکٹ پر مبنی ہے۔ پاور شیل میں ہر چیز ایک شے ہے ، مطلب یہ کہ متغیر بھی۔ توسیع شدہ خصوصیات اور افعال ہیں۔ . یہی وجہ ہے کہ آپ اپنی تلاشوں کو ایک متغیر پر سیٹ کر سکتے ہیں ، اور نتائج کی ایک صف کے ساتھ ختم کر سکتے ہیں۔

$yourVar = Get-ChildItem *
foreach ($file in $yourVar){
Your Steps
}

کچھ زبانوں میں ، اس صف کو پروسیس کرنا ایک ملٹی اسٹیپ عمل ہوگا۔ پہلے ، لمبائی حاصل کرنا اور پھر ہر قدم کو گننا۔



پاور شیل میں ، آپ صف کے ذریعے قدم رکھتے ہیں اور ہر ایک پر عمل کرتے ہیں ForEach کا استعمال کرتے ہوئے۔ اس سے آپ کوڈ کی کئی لائنوں کی بچت ہوتی ہے ، جو مددگار ہے اگر آپ کو لمبا اسکرپٹ مل گیا ہے۔ مثال کے طور پر ، ذیل میں ایک چھوٹی سکرپٹ ہے جو پاورشیل فار ایچ لوپس کے ایک جوڑے کو استعمال کرے گی۔ یہ آپ کی تمام فائلوں کا ایک زپ آرکائیو بناتا ہے جسے آپ نے 30 دنوں میں نہیں کھولا ہے۔

ForEach Loops کا استعمال کرتے ہوئے فائل آرکائیو سسٹم بنانا۔

آئیے قدموں کو توڑ دیں۔ تم استعمال کرتے ہو Get-ChildItem دستاویزات کے فولڈر میں تمام فائلیں حاصل کرنے کے لیے۔ ماحول متغیر۔ $ env: USERPROFILE۔ موجودہ پروفائل کا استعمال کرتے ہوئے اسکرپٹ چلاتا ہے۔ یہ متغیر ہارڈ کوڈ والے راستے سے زیادہ پورٹیبل ہے۔ اس تلاش کے نتائج متغیر کو تفویض کیے گئے ہیں۔ $ MyDocs۔ . اس کے بعد ہم اپنے ForEach لوپ کو ہر ایک کے ذریعے مرحلہ وار بناتے ہیں۔ $ MyDocs میں $ Doc۔ .





$oldDocs = @()
$MyDocs = Get-ChildItem -Path '$($env:USERPROFILE)Documents' -Recurse
foreach ($doc in $MyDocs){
if($doc.LastAccessTime -lt $(Get-Date).addDays(-30)){
$oldDocs += $doc
}
}
$ArchiveFolder = New-Item -Path '$($env:USERPROFILE)Documents$((Get-Date -Format MMddyy).toString())' -ItemType Directory
foreach ($doc in $oldDocs){
Move-Item -Path $doc.FullName -Destination '$($ArchiveFolder.FullName)$($doc.Name)' -Confirm $false
}
$source = $ArchiveFolder.FullName
$destination = '$($env:USERPROFILE)Documents$($ArchiveFolder.Name).zip'
Add-Type -AssemblyName 'system.io.compression.filesystem'
[io.compression.zipfile]::CreateFromDirectory($source, $destination)
if(test-path $destination){
Remove-Item -Path $ArchiveFolder -Recurse -Confirm $false
}

لوپ کے اندر ، ہم چیک کرتے ہیں کہ ہر فائل ہے یا نہیں۔ LastAccessTime پراپرٹی 30 دن سے زیادہ پرانی ہے۔ ہم اس کے ساتھ حاصل کرتے ہیں تاریخ حاصل کریں۔ cmdlet ، اور AddDays منفی تیس کے ساتھ کام کریں اگر یہ ہے تو ، ہم فائل کو اس میں شامل کرتے ہیں۔ $ myOldDocs صف فائل کی ترتیب مکمل ہونے کے بعد ، ہم پھر اپنی مکمل سرنی لیتے ہیں اور ایک زپ فائل بناتے ہیں۔ یہ عمل تھوڑا زیادہ پیچیدہ ہے کیونکہ اس میں تھوڑا .NET شامل کرنا شامل ہے۔ پریشان نہ ہوں اگر آپ اسے اچھی طرح سمجھ نہیں سکتے - آپ کوڈ کو چوری کرسکتے ہیں۔ یہ ٹیک نیٹ مدد دستاویز۔ .

یہاں جو کچھ ہورہا ہے اسے توڑنے کے لیے: ہم اپنی تمام پرانی فائلوں کو ایک نئی ڈائرکٹری میں منتقل کردیں گے جس کا نام آج کی تاریخ 30 دن سے زیادہ پرانی ہے۔ ایک بار جب یہ فولڈر بن جاتا ہے ، ہمیں اسی نام کا ZIP آرکائیو بنانا ہوتا ہے۔ ہم اس بات کو یقینی بنانے کے لیے جانچ کریں گے کہ آرکائیو کامیاب ہے اور .ZIP فائل ہے ، اور پھر نیا فولڈر ڈیلیٹ کریں۔ مہینے میں ایک بار چلانے کے لیے اسے شیڈول ٹاسک کے طور پر سیٹ کریں۔ آپ اپنے آپ کو تھوڑی سی جگہ بچائیں گے اور اپنے دستاویزات کے فولڈر کو صاف رکھیں گے۔





جبکہ اور کرتے وقت: کنڈیشن پر لوپس۔

اگر آپ لوپ کو صرف اس وقت چلانا چاہتے ہیں جب کوئی خاص شرط پوری ہو جائے تو آپ جب کہ لوپ استعمال کرتے ہیں۔ اگر آپ گنتی کو ٹریک کرنے کے لیے کوئی متغیر استعمال کر رہے ہیں تو پہلے اسے سیٹ کریں۔

i=0
while(i<10){
Your Steps
i+=1
}

مسئلہ یہ ہے کہ اگر آپ کاؤنٹر استعمال نہیں کر رہے ہیں تو ، آپ چاہیں گے کہ آپ کا کوڈ کم از کم ایک بار چل جائے چاہے ٹیسٹ درست ہو۔ نیچے دی گئی مثال کے اسکرپٹ کا یہی حال ہے۔ تو ان صورتوں میں ، آپ Do-while لوپ استعمال کرنا چاہتے ہیں۔ نحو قدرے مختلف ہے۔

do{
Your Steps
}while(Conditional Statement)

ان کا استعمال نوسکھئیے پروگرامر کے لیے اتنا واضح نہیں ہے۔ عام دن بہ دن اسکرپٹنگ کرتے ہوئے ، آپ ان میں اکثر نہیں چل سکتے ہیں۔ جہاں وہ خاص طور پر کام آتے ہیں وہ ایک عمل کی کامیابی کو جانچنے کے لیے ایک عارضی ٹائمر بنانا ہے۔

اگر تصویر جعلی ہے تو کیسے بتائیں

ہم ریموٹ مشین کو دوبارہ شروع کرنے کے لیے ایک فوری اسکرپٹ بنانے جا رہے ہیں اور اگر یہ 15 منٹ کے اندر واپس نہیں آتی ہے تو خبردار کریں۔ یہ منظر فرض کرتا ہے کہ یہ ہوم سرور یا دوسری مشین ہے جو اکثر ریبوٹ نہیں ہوتی ہے۔ اگر آپ کا کمپیوٹر عام طور پر تیزی سے آتا ہے تو بلا جھجھک وقت کو ایڈجسٹ کریں۔

ریبوٹ اور چیک کریں: ڈو-ویل لوپ کا استعمال۔

یہ اسکرپٹ تھوڑا آسان ہے۔ سب سے پہلے ، آپ استعمال کرتے ہیں کمپیوٹر کو دوبارہ شروع کریں۔ ریموٹ مشین کو دوبارہ شروع کرنے کا حکم۔ (ہم نے یہاں ریبوٹ کمانڈز کے لیے ایک ڈمی آئی پی استعمال کیا ، اپنے کمپیوٹر کے ڈی این ایس/آئی پی سے اس کو اوور رائٹ کرنا یقینی بنائیں)۔ پھر کاؤنٹر متغیر بنائیں ، میں اور اسے 0 پر سیٹ کریں۔ اگلا ، آپ کے پاس اسٹارٹ سلیپ کے ساتھ اپنا ڈو لوپ ہے جو اسکرپٹ کو 300 سیکنڈ (پانچ منٹ) کے لیے روکتا ہے۔ ایک دوسری کمانڈ کاؤنٹر میں ایک کا اضافہ کرتی ہے۔

Restart-Computer -ComputerName 127.0.0.1
i=0
do{
Start-Sleep -Seconds 300
$i += 1
}while((!(Test-Connection 127.0.0.1 -Quiet)) -or $i -gt 3)
if($i -gt 3){
Write-Ouput 'Remote Machine not responding, please check.'
}
else{
Write-Output 'Reboot Succeeded'
}

پھر ہمارے پاس ہمارے جبکہ معیار ہے۔ ہم اس بات کو یقینی بنانے کے لیے ایک اور ٹیسٹ کا استعمال کرتے ہیں کہ ناکامی الرٹ پیدا کرتی ہے۔ اس کا متبادل سکرپٹ ہے جو ریموٹ مشین کا نہ ختم ہونے والا انتظار کر رہا ہے۔ مشین کو چیک کرنے کے لیے ، ہم استعمال کر رہے ہیں۔ ٹیسٹ کنکشن۔ cmdlet. سادگی کے لیے ، یہ پاور شیل کے لیے پنگ ہے۔ ہم پیرامیٹر شامل کرتے ہیں۔ -خاموش۔ جو اسے پیکٹ کے نتائج کے بجائے سچ یا غلط واپس کرنے پر مجبور کرتا ہے۔ اور بیان کا دوسرا حصہ چیک کرتا ہے کہ کاؤنٹر تین سے زیادہ ہے یا نہیں۔

ایک بار جب لوپ مکمل ہوجاتا ہے ، ہم آؤٹ پٹ بنانا چاہتے ہیں۔ اس کا مطلب ہے کہ ہمیں اپنا کاؤنٹر چیک کرنے کی ضرورت ہے۔ یہ ایک فوری if/else بیان ہے۔ اگر یہ تین سے زیادہ ہے تو ، اسکرپٹ آؤٹ پٹ کرتا ہے کہ ریموٹ مشین جواب نہیں دے رہی ہے۔ اگر یہ نہیں ہے تو ، یہ نتیجہ اخذ کرتا ہے کہ ریبوٹ کامیاب تھا۔

دیگر لوپس۔

پاور شیل میں دو دوسری قسم کے لوپس دستیاب ہیں۔ وہ کسی حد تک پچھلے دو لوپس سے متعلق ہیں ، وہ عام طور پر استعمال نہیں ہوتے ہیں۔ A لوپ جبکہ مثال کے طور پر اسی طرح کام کرتا ہے۔ آپ تشخیص میں اپنے تمام معیارات طے کرتے ہیں ، پھر اپنے cmdlets سیٹ کریں۔

for($i = 0;$i -lt 10;$i++){
Your Steps
}

جب تک لوپس ڈو جبکہ لوپس کی طرح نہ ہوں ، آپ صرف جبکہ اسٹیٹمنٹ کو جب تک میں تبدیل کریں۔ مثال کے اسکرپٹ میں ، یہ اتنا ہی ہوگا جتنا سلوک۔ یہ ایک سٹائل کا انتخاب ہے ، لیکن Do جبکہ دیگر حالات میں زیادہ ورسٹائل ہے۔ لہذا اگر آپ کو صرف ایک ہی یاد ہے تو ڈو جبکہ زیادہ مفید ہے۔

پاورشیل کے پاس ان میں سے ہر ایک لوپ کے لیے بھی مدد ہے۔ آپ شامل کرکے مدد حاصل کرسکتے ہیں۔ کے بارے میں گیٹ ہیلپ میں لوپ نام سے پہلے۔ پھر آپ ہر قسم کے لیے مثالیں اور دیگر تجاویز دیکھ سکتے ہیں۔ اگر آپ پھنس جاتے ہیں تو یہ مددگار ثابت ہوں گے۔

آپ کے ساتھ بڑھنا جاری رکھیں۔

اس مقام پر ، آپ کے پاس مضبوط سکرپٹ بنانا شروع کرنے کی مہارت ہے۔ چاہے آپ کے گھر کی رگ خودکار ہو یا کام پر وقت کی بچت ، لوپس آپ کے سکرپٹ کو مزید کام کرنے میں مدد دیتے ہیں۔ غلطیوں کو سنبھالنے کے ساتھ ان لوپس کو جوڑنا آپ کی اسکرپٹنگ کو بنیادی باتوں سے آگے بڑھاتا ہے۔ اس سے مزید جدید زبانوں کے دروازے کھلتے ہیں۔

ایک ہوشیار پاور شیل اسکرپٹ کیا ہے جو آپ نے لوپس کا استعمال کرتے ہوئے بنائی ہے؟ تبصرے میں ہمارے ساتھ اس کا اشتراک کریں۔

بانٹیں بانٹیں ٹویٹ ای میل۔ ڈسک کی جگہ کو خالی کرنے کے لیے ان ونڈوز فائلوں اور فولڈرز کو حذف کریں۔

اپنے ونڈوز کمپیوٹر پر ڈسک کی جگہ صاف کرنے کی ضرورت ہے؟ یہ ہیں ونڈوز فائلیں اور فولڈرز جنہیں ڈسک کی جگہ خالی کرنے کے لیے محفوظ طریقے سے حذف کیا جا سکتا ہے۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پروگرامنگ۔
  • پاور شیل۔
  • اسکرپٹنگ۔
مصنف کے بارے میں مائیکل میک کونل۔(44 مضامین شائع ہوئے)

مائیکل نے میک استعمال نہیں کیا جب وہ برباد ہوئے ، لیکن وہ ایپل اسکرپٹ میں کوڈ کرسکتا ہے۔ اس کے پاس کمپیوٹر سائنس اور انگریزی میں ڈگریاں ہیں۔ وہ کچھ عرصے سے میک ، آئی او ایس اور ویڈیو گیمز کے بارے میں لکھ رہا ہے۔ اور وہ ایک دہائی سے زیادہ عرصے سے آئی ٹی بندر رہا ہے ، سکرپٹنگ اور ورچوئلائزیشن میں مہارت رکھتا ہے۔

ونڈوز 10 پر کمانڈ پرامپٹ کا استعمال کیسے کریں
مائیکل میک کونل سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔