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.
