ITDCWSE 📚 لیول 3: ایڈوانسڈ سسٹم انجینئر - 📖 سبق 2: پاور شیل ویری ایبلز اور ڈاٹا ٹائپس


 

📚 لیول 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 بنانا:

powershell
# سادہ variable
$name = "Ali"
$age = 25
$salary = 50000.50
$isActive = $true

Variable دیکھنا:

powershell
# تمام variables
Get-Variable

# مخصوص variable
Get-Variable -Name name

# variable کی قدر
$name

📊 Data Types

بنیادی Data Types:

1. String (متن)

powershell
$firstName = "Ahmed"
$lastName = 'Khan'
$message = "Welcome to PowerShell"

# String operations
$fullName = $firstName + " " + $lastName
$upperName = $firstName.ToUpper()
$lowerName = $lastName.ToLower()
$length = $firstName.Length

2. Integer (عدد صحیح)

powershell
$count = 10
$score = -5
$largeNumber = 1000000

# Mathematical operations
$sum = 10 + 20
$product = 5 * 6
$division = 100 / 4
$remainder = 10 % 3

3. Float/Double (اعشاریہ اعداد)

powershell
$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 (منطقی)

powershell
$isReady = $true
$isCompleted = $false
$hasPermission = $true

# Logical operations
$result = $isReady -and $hasPermission
$opposite = -not $isCompleted

5. DateTime (تاریخ و وقت)

powershell
$currentDate = Get-Date
$specificDate = Get-Date "2024-12-31"
$tomorrow = (Get-Date).AddDays(1)
$timeDifference = $specificDate - $currentDate

📋 Variable کی قسم معلوم کرنا

powershell
# 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 بنانا:

powershell
# سادہ 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 مینجمنٹ:

powershell
# Array میں آئٹم شامل کرنا
$fruits += "Grapes"

# Array سے آئٹم نکالنا
$fruits = $fruits | Where-Object {$_ -ne "Banana"}

# Array پر لوپ
foreach ($fruit in $fruits) {
    Write-Host "Fruit: $fruit"
}

Array کے طریقے:

powershell
$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 بنانا:

powershell
# Key-Value pairs
$student = @{
    Name = "Ali Raza"
    Age = 22
    Grade = "A"
    Subjects = "Maths", "Physics", "Computer"
    IsActive = $true
}

Hashtable آپریشنز:

powershell
# 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 پر لوپ:

powershell
foreach ($key in $student.Keys) {
    Write-Host "$key : $($student[$key])"
}

🔄 Variable تبدیل کرنا (Casting)

powershell
# 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:

powershell
$global:configPath = "C:\Config\settings.ini"

2. Script Scope:

powershell
$script:counter = 0

3. Local Scope (default):

powershell
$local:temp = "Temporary value"

Scope مثال:

powershell
# 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: یوزر انفارمیشن سسٹم

powershell
# 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: کیلکولیٹر

powershell
# 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: فائل مانیٹرنگ

powershell
# 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:

powershell
# اپنا تعارف variables میں محفوظ کریں
$myName = "آپ کا نام"
$myAge = 25
$myCity = "آپ کا شہر"
$mySkills = "PowerShell", "Windows", "Networking"

# سب کو ایک ساتھ دکھائیں

2. کیلکولیشن:

powershell
# 5 مضامین کے نمبرز لیں
# ان کا کل اور اوسط نکالیں
# Percentage نکالیں
# Result Pass/Fail دکھائیں

3. Student Hashtable:

powershell
# 5 طلبہ کا ڈیٹا hashtable میں محفوظ کریں
# ہر طالب علم کے نام، عمر، گریڈ شامل کریں
# تمام طلبہ کی فہرست دکھائیں

سوالات:

  1. PowerShell میں variable کی پہچان کیا ہے؟

  2. String اور Integer میں کیا فرق ہے؟

  3. Array اور Hashtable میں کیا بنیادی فرق ہے؟

  4. Global اور Local scope میں کیا فرق ہے؟

مشق:

powershell
# ایک script لکھیں جو:
# 1. 10 نمبرز کا array بنائے
# 2. ان میں سے سب سے بڑا اور چھوٹا نمبر نکالے
# 3. ان کا اوسط نکالے
# 4. نتائج کو hashtable میں محفوظ کرے

⚡ اگلا سبق:

"PowerShell Operators اور Conditions"


⚠️ اہم نوٹ (ڈسکلیمر)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🔴 براہ کرم غور سے پڑھیں

یہ مواد آئی ٹی درسگاہ فورم کی جانب سے محض تعلیمی اور معلوماتی مقاصد کے لیے فراہم کیا جا رہا ہے۔

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⛔ ذمہ داری سے انکار:

• اس کورس میں دی گئی تمام کمانڈز، کوڈز، اور طریقہ کار صرف تعلیمی مقاصد کے لیے ہیں
• ان کا استعمال صرف آپ کی اپنی ذمہ داری پر ہوگا
• کسی بھی نقصان، ڈیٹا کے ضیاع، سسٹم کی خرابی، یا کسی دوسرے مسائل کی صورت میں آئی ٹی درسگاہ فورم، اس کے منتظمین، یا اساتذہ میں سے کوئی بھی ذمہ دار نہیں ہوگا

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ تجاویز:

• کسی بھی کمانڈ کو چلانے سے پہلے اسے اچھی طرح سمجھ لیں
• اہم ڈیٹا کا بیک اپ ضرور بنا لیں
• پہلے ٹیسٹ سسٹم پر کمانڈز آزمائیں
• اگر کسی کمانڈ کے بارے میں یقین نہ ہو تو ماہرین سے مشورہ کریں

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 قانونی پہلو:

اس کورس کا مقصد صرف علم کا فروغ ہے۔ آئی ٹی درسگاہ فورم ان کمانڈز کے استعمال سے ہونے والے کسی بھی نقصان کا ذمہ دار نہیں ہوگا۔

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📌 یاد رکھیں:

text
🛡️ پہلے بیک اپ، پھر کمانڈ
🔍 پہلے سمجھیں، پھر چلائیں
💭 شک ہو تو ماہر سے پوچھیں
⚡ احتیاط ہی بہترین حفاظت ہے

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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

ایک تبصرہ شائع کریں