5.01.2026

Powershell betiklerine komut satırından parametre göndermek

Powershell betiklerine komut satırından bir bilgi (parametre, argument) göndermenin varsayılan yöntemi şöyle:

.\betik.ps1 -file D:\dosya.txt -ComputerName pc1

Burada -File parametresi küçük/büyük harf duyarlı değil. İçerde de şu şekilde işlenebilir:

param(
[string]$File,
[string]$Computername
)

Eğer -file ve -computername değerlerini parametre isimlerini/etiketlerini kullanmadan şu şekilde göndermek istersek

.\betik.ps1 D:\dosya.txt pc1

bu durumda işlerken şu şekilde bir konum belirleme mekanizması kullanmalıyız.

param(
[Parameter(Position=0)]
[string]$File,
[Parameter(Position=1)]
[string]$Computername
)

Ama eski tip DOS komutları bazen tire "-" karakteri yerine bölü "/" karekteri ile parametre göndermeyi tercih ederler.

Ya C argument dizisi benzeri şu yöntem kullanılabilir:

foreach ($arg in $Args) {
Write-Host "arg : $arg"
}

Öyle birşey istiyorum ki, betiğe -file ile, isimsiz ve hatta /f gibi bir parametre ile bile göndersek dosya.txt betik tarafından alınabilsin.

param(
    [int]$File
)

if (-not $Input -and $args.Count -ge 1) {
    if ($args[0] -match '^/f$') {
        $Name = $args[1]
    }
}

 Çoklu parametrelere girmedim.

Hiç yorum yok: