📚 لیول 3: Advanced System Engineer - سبق نمبر 2
📖 سبق 2: PowerShell Variables اور Data Types
🎯 سبق کا تعارف
پچھلے سبق میں ہم نے PowerShell کا تعارف اور بنیادی cmdlets سیکھیں۔ اب اس سبق میں ہم PowerShell کے قلب یعنی Variables اور Data Types کو تفصیل سے سیکھیں گے۔
اس سبق میں آپ سیکھیں گے:
Variables کیا ہیں اور کیسے استعمال کریں
مختلف Data Types کا تعارف
Variables کے ساتھ آپریشنز
Arrays اور Hashtables
Variable scope اور lifetime
📦 Variables کا تعارف
Variable کیا ہے؟
Variable ایک کنٹینر ہے جس میں ہم ڈیٹا محفوظ کر سکتے ہیں۔ PowerShell میں variable کی پہچان $ علامت سے ہوتی ہے۔
Variable بنانا:
# سادہ variable $name = "Ali" $age = 25 $salary = 50000.50 $isActive = $true
Variable دیکھنا:
# تمام variables Get-Variable # مخصوص variable Get-Variable -Name name # variable کی قدر $name
📊 Data Types
بنیادی Data Types:
1. String (متن)
$firstName = "Ahmed" $lastName = 'Khan' $message = "Welcome to PowerShell" # String operations $fullName = $firstName + " " + $lastName $upperName = $firstName.ToUpper() $lowerName = $lastName.ToLower() $length = $firstName.Length
2. Integer (عدد صحیح)
$count = 10 $score = -5 $largeNumber = 1000000 # Mathematical operations $sum = 10 + 20 $product = 5 * 6 $division = 100 / 4 $remainder = 10 % 3
3. Float/Double (اعشاریہ اعداد)
$price = 99.99 $temperature = 36.6 $percentage = 75.5 # Precision operations $total = $price * 1.16 # Sales tax calculation $average = (10.5 + 20.3 + 30.7) / 3
4. Boolean (منطقی)
$isReady = $true $isCompleted = $false $hasPermission = $true # Logical operations $result = $isReady -and $hasPermission $opposite = -not $isCompleted
5. DateTime (تاریخ و وقت)
$currentDate = Get-Date $specificDate = Get-Date "2024-12-31" $tomorrow = (Get-Date).AddDays(1) $timeDifference = $specificDate - $currentDate
📋 Variable کی قسم معلوم کرنا
# Data type چیک کرنا $name = "Ahmed" $name.GetType() # Output: IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object # مخصوص قسم چیک کرنا $age = 25 $age -is [int] # True $name -is [string] # True
🔢 Arrays (فہرستیں)
Array بنانا:
# سادہ array $fruits = "Apple", "Banana", "Orange", "Mango" $numbers = 1, 2, 3, 4, 5 $mixed = "Text", 100, $true, Get-Date # Array آپریشنز $firstFruit = $fruits[0] # پہلا آئٹم $lastFruit = $fruits[-1] # آخری آئٹم $fruitCount = $fruits.Count # array کی لمبائی
Array مینجمنٹ:
# Array میں آئٹم شامل کرنا $fruits += "Grapes" # Array سے آئٹم نکالنا $fruits = $fruits | Where-Object {$_ -ne "Banana"} # Array پر لوپ foreach ($fruit in $fruits) { Write-Host "Fruit: $fruit" }
Array کے طریقے:
$numbers = 5, 2, 8, 1, 9, 3 # Sort کرنا $sorted = $numbers | Sort-Object # Reverse کرنا [array]::Reverse($numbers) # Specific values $maximum = ($numbers | Measure-Object -Maximum).Maximum $minimum = ($numbers | Measure-Object -Minimum).Minimum $average = ($numbers | Measure-Object -Average).Average
📚 Hashtables (لغتیں)
Hashtable بنانا:
# Key-Value pairs $student = @{ Name = "Ali Raza" Age = 22 Grade = "A" Subjects = "Maths", "Physics", "Computer" IsActive = $true }
Hashtable آپریشنز:
# Values access $studentName = $student["Name"] $studentAge = $student.Age # نیا key-value شامل کرنا $student["City"] = "Lahore" $student.Phone = "0300-1234567" # Key موجود ہے؟ $student.ContainsKey("Email") # تمام keys $student.Keys # تمام values $student.Values
Hashtable پر لوپ:
foreach ($key in $student.Keys) { Write-Host "$key : $($student[$key])" }
🔄 Variable تبدیل کرنا (Casting)
# Explicit casting $numberString = "123" $actualNumber = [int]$numberString # Safe conversion $result = 0 if ([int]::TryParse($numberString, [ref]$result)) { Write-Host "Conversion successful: $result" } # Different types $floatValue = [float]"45.67" $dateValue = [datetime]"2024-01-15" $booleanValue = [boolean]1
🌍 Variable Scope (دائرہ کار)
Scope کی اقسام:
1. Global Scope:
$global:configPath = "C:\Config\settings.ini"
2. Script Scope:
$script:counter = 03. Local Scope (default):
$local:temp = "Temporary value"
Scope مثال:
# Function میں variable function Test-Scope { $localVar = "Local value" $global:globalVar = "Global value" Write-Host "Inside function: $localVar" Write-Host "Inside function: $globalVar" } Test-Scope Write-Host "Outside: $localVar" # خالی Write-Host "Outside: $globalVar" # Global value
💼 عملی منظرنامے
منظرنامہ 1: یوزر انفارمیشن سسٹم
# User data جمع کرنا $user = @{ Name = Read-Host "Enter your name" Age = [int](Read-Host "Enter your age") Email = Read-Host "Enter your email" JoinDate = Get-Date IsAdmin = $false } # User data دکھانا Write-Host "`nUser Information:" foreach ($key in $user.Keys) { Write-Host "$key : $($user[$key])" }
منظرنامہ 2: کیلکولیٹر
# Simple calculator $num1 = [float](Read-Host "Enter first number") $num2 = [float](Read-Host "Enter second number") $operation = Read-Host "Enter operation (+, -, *, /)" $result = switch ($operation) { "+" { $num1 + $num2 } "-" { $num1 - $num2 } "*" { $num1 * $num2 } "/" { $num1 / $num2 } default { "Invalid operation" } } Write-Host "Result: $result"
منظرنامہ 3: فائل مانیٹرنگ
# Directory contents with details $path = Read-Host "Enter directory path" $files = Get-ChildItem $path $fileInfo = @() foreach ($file in $files) { $fileInfo += [PSCustomObject]@{ Name = $file.Name Size = "{0:N2} KB" -f ($file.Length / 1KB) Type = $file.Extension Modified = $file.LastWriteTime } } $fileInfo | Format-Table -AutoSize
📝 اسائنمنٹ
عملی کام:
1. بنیادی Variables:
# اپنا تعارف variables میں محفوظ کریں $myName = "آپ کا نام" $myAge = 25 $myCity = "آپ کا شہر" $mySkills = "PowerShell", "Windows", "Networking" # سب کو ایک ساتھ دکھائیں
2. کیلکولیشن:
# 5 مضامین کے نمبرز لیں # ان کا کل اور اوسط نکالیں # Percentage نکالیں # Result Pass/Fail دکھائیں
3. Student Hashtable:
# 5 طلبہ کا ڈیٹا hashtable میں محفوظ کریں # ہر طالب علم کے نام، عمر، گریڈ شامل کریں # تمام طلبہ کی فہرست دکھائیں
سوالات:
PowerShell میں variable کی پہچان کیا ہے؟
String اور Integer میں کیا فرق ہے؟
Array اور Hashtable میں کیا بنیادی فرق ہے؟
Global اور Local scope میں کیا فرق ہے؟
مشق:
# ایک script لکھیں جو: # 1. 10 نمبرز کا array بنائے # 2. ان میں سے سب سے بڑا اور چھوٹا نمبر نکالے # 3. ان کا اوسط نکالے # 4. نتائج کو hashtable میں محفوظ کرے
⚡ اگلا سبق:
"PowerShell Operators اور Conditions"
⚠️ اہم نوٹ (ڈسکلیمر)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 براہ کرم غور سے پڑھیں
یہ مواد آئی ٹی درسگاہ فورم کی جانب سے محض تعلیمی اور معلوماتی مقاصد کے لیے فراہم کیا جا رہا ہے۔
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⛔ ذمہ داری سے انکار:
• اس کورس میں دی گئی تمام کمانڈز، کوڈز، اور طریقہ کار صرف تعلیمی مقاصد کے لیے ہیں
• ان کا استعمال صرف آپ کی اپنی ذمہ داری پر ہوگا
• کسی بھی نقصان، ڈیٹا کے ضیاع، سسٹم کی خرابی، یا کسی دوسرے مسائل کی صورت میں آئی ٹی درسگاہ فورم، اس کے منتظمین، یا اساتذہ میں سے کوئی بھی ذمہ دار نہیں ہوگا
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ تجاویز:
• کسی بھی کمانڈ کو چلانے سے پہلے اسے اچھی طرح سمجھ لیں
• اہم ڈیٹا کا بیک اپ ضرور بنا لیں
• پہلے ٹیسٹ سسٹم پر کمانڈز آزمائیں
• اگر کسی کمانڈ کے بارے میں یقین نہ ہو تو ماہرین سے مشورہ کریں
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 قانونی پہلو:
اس کورس کا مقصد صرف علم کا فروغ ہے۔ آئی ٹی درسگاہ فورم ان کمانڈز کے استعمال سے ہونے والے کسی بھی نقصان کا ذمہ دار نہیں ہوگا۔
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 یاد رکھیں:
🛡️ پہلے بیک اپ، پھر کمانڈ 🔍 پہلے سمجھیں، پھر چلائیں 💭 شک ہو تو ماہر سے پوچھیں ⚡ احتیاط ہی بہترین حفاظت ہے
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

کوئی تبصرے نہیں:
ایک تبصرہ شائع کریں