Powershell'de işimizi tek satırda bitiremediğimiz durumlar olduğunda alt satırda kaldığımız yerden devam edebilmek için bir backtick ya da backquote olarak bilinen " ` " karakteri kullanılır. Ama dikkat, bu tek tırnak " ' " (veya apostrof olarak bilinen) karakterinden farklı bir karakterdir. Yalnız bu karakterden sonra hemen enter (carriage return / line feed) gelmelidir.
Örnek şu olabilir:
Get-WinEvent -ComputerName UZAKPC -Filterhashtable ` @{LogName="System";StartTime=(Get-Date).AddDays(-7)}Ama şu adreste bahsedildiği gibi, bu karakterin bazı olumsuz yanları var. Aslında bu karakteri kullanmadan da alt satıra geçerek devam edilebiliyor. Alternatif yöntemler (aynı siteden alıntı):
1. Aritmetik işleçler
Dört işleme ilave olarak bit olarak sağa/sola kaydırma işleçleri sonrasında alt satıra geçilebilir. Örnek:
$GunlukToplamOlaySayisi =
$HaftalikToplamOlaySayisi /
$BirHaftadakiGunSayisi
2. Atama operatörleri
En çok bilinen atama operatörü olarak eşittirden başka artırarak eşittir, çarparak eşittir gibi dört işlemein de oldğu eşittirler var. Ve birkaç tane daha:
= += -+ *= /= %= ++ --
$ToplamVarilanNokta+=
$HerSeferdeArtisMiktari
Yukarıdaki örnekte de eşittirden sonra alt satıra geçmiştim.
3. Karşılaştırma işleçleri
Karşılaştırma için kullanılan aşağıdaki işleçler
-eq -ne -gt -lt -le -ge -match -like -in -contains -replace
Örnek olarak
$event[0].properties[0].Value -eq
$event[1].properties[0].Value
4. Mantıksal işleçler
Mantıksal VE, VEYA ve diğer işleçler:
-and -or -xor -not !
$LogonType -eq 2 -and
$EventId -eq 4624
5. Ayırma ve birleştirme işleçleri
-split -join
"pazartesi, sali, carsamba, persembe, cuma, cumartesi, pazar" -split
", "
veya bazıları -split operatörünü (sadece ayırma karakteri belirtmeyecekse, ki bu da sadece boşlukla ayrılmış veriler için işe yarar) başta kullanır:
-split
"pazartesi sali carsamba persembe cuma cumartesi pazar"
6. Tip işleçleri
Tip karşılaştırması için kullanılan aşağıdaki işleçler
-is -isnot -as
$HaftaninGunleri -is
[System.Array]
7. Alt ifade işleçleri (subexpression operators)
Paranteze alınmış bir ifadeyi çalıştırmak için kullanılan $( ... ) ifadesi.
8. Dizi oluşturma işleci
Bir dizi oluşturmak için @(...) kullanılıyor. Bu ve içindeki öğelerin her biri ayrı satırlara gelebilir, aşağıdaki gibi.
$3BuyukSehir = @(
'Istanbul',
'Ankara',
'Izmir'
)
9. Hash table işleci
Dizi işlecine benzer şekilde hash table işleci @{ ... } ile de alt satıra geçilebilir.
Get-WinEvent -FilterHashtable @{
LogName='System';
ID=6006};
StartTime=(Get-Date).AddDays(-7)
}
10. Virgül
Dizi öğelerini ayırmak için ya da parametreleri ayırmak için kullanılan virgüller sonrasında da yeni satıra geçilebilir. 8'dekine benzer şekilde:
$HaftaninGunleri="Pazartesi",
"Sali",
"Carsamba",
"Persembe",
"Cuma",
"Cumartesi",
"Pazar"
11. Biçimlendirme işleci
Karakter dizilerini biçimlendirmek için kullanılan -f işleci, söz konusu olan.
12. Köşeli parantezler
Genel olarak indekslemek için kullanıldığı durumlarda.
$HaftaninGunleri[
$BirSekildeBugununHaftaninKacinciGunuOldugunuTutanDegisken
]
13. Betik bloğu işleci
İşletilmek üzere bir küme parantezleri içinde oluşturulan bir betik bloğu için küme parantezleri öncesinde ve sonrasında. Örnek:
Invoke-Command -ComputerName UZAKPC -ScriptBlock {
hostname
}
14. Özellik ayırma işleci
Bir nesnenin içindeki özelliğe başvuru yapmamızı sağlayan nokta, burada kastedilen. Noktadan sonra da yeni satıra geçilebilir. Örnek.
$event[0].
Properties[0].
Value
15. Static Member Operator
Sadece örnek:
$Rule = [Microsoft.Windows.PowerShell.ScriptAnalyzer.BuiltinRules.AvoidUsingConvertToSecureStringWithPlainText]::
New()
veya daha bilindik bir örnek
15. Menzil işleci
Art arda gelen iki nokta " .. ", başlangıç ve sonu verilen aralıkta düzenli aran veya azalan dizi oluşturmak için kullanılır.
16. Boru işleci
Bir komudun çıktısını başka bir komuda giriş olarak veren " | " işleci.
Get-ADUser -Filter * |
Where-Object { $_.Name -like "Ahm*" }
17. Splatting
Splatting aslında alt satıra geçme işleci değil ama çok satırlı yapıdan kurtulmak için kullanılabilir.
$smtpParams = @{
From = "gonderen@firma.com"
To = "alici@firma.com"
Subject = "deneme mesajı"
}
Send-MailMessage $smtpParam
Tüm bunlardan bağımsız, birden çok satırda olması gereken karakter dizesi değişkenler için @" ... "@ notasyonu var. Yalnız başlangıç işaretçisi olan @" ikilisinden sonra ve bitiş işaretçisi olan "@ ikilisinden önce bir karakter olmamalı.
$Alınti=@"
Halk içinde muteber bir nesne yok devlet gibi
Olmaya devlet cihânda bir nefes sıhhat gibi
"@