PowerShell Değişken Joker Karakterleri
PowerShell değişken joker karakterleri, desen eşleştirmeyle güçlü komut dosyaları yazmanıza olanak tanır.
PowerShell'de kalıp eşleştirme için iki ana joker karakter türü * ve ? kullanılır.
*- Sıfır veya daha fazla karakterle eşleşir?- Tam olarak bir karakterle eşleşir
Bu eğitimde, joker karakterlerin PowerShell değişkenleriyle nasıl kullanılacağını ve komut dosyalarını geliştirmek için pratik örnekleri tartışacağız.
PowerShell Değişkenleriyle Joker Karakterleri Kullanma
-Like operatörünü kullanma
Bir değişkeni joker karakter deseniyle karşılaştırmak için, joker karakter desenlerini kullanarak dizeleri karşılaştıran Like operatörünü kullanın.
$temp = "ShellGeek" $result = $temp -like "Shell*"
Yukarıdaki PowerShell betiğinde $temp değişkeni dize türü değerini saklar. -like operatörü, bir dizenin verilen dizedeki bir veya daha fazla karakterle eşleşip eşleşmediğini kontrol etmek için * joker karakter modellerini kullanarak dizeyi karşılaştırır.
Yukarıdaki PowerShell betiğinin çıktısı:
Joker Karakterli Where-Object cmdlet'i
Where-Object cmdlet'i, nesneleri özelliklerine göre filtrelemek için genellikle joker karakterlerle birlikte kullanılır.
$files = Get-ChildItem -Path 'D:\PS\' $textFiles = $files | Where-Object {$_.name -like "*.txt"} $textFiles Yukarıdaki PowerShell betiğinde Get-ChildItem cmdlet'i, belirtilen yoldan öğeleri alır ve bunları $files değişkeninde saklar.
Where-Object cmdlet'i $files değişkeninde *.txt gibi dosya uzantısına sahip dosyaları filtrelemek ve bunları depolamak için kullanılır. $textFiles değişkeni.
PowerShell cmdlet'indeki joker karakterleri kullanarak metin dosyalarını almak için yukarıdaki PowerShell betiğinin çıktısı şöyledir:
PS D:\> $files = Get-ChildItem -Path 'D:\PS\' PS D:\> $textFiles = $files | Where-Object {$_.name -like "*.txt"} PS D:\> $textFiles
Directory: D:\PS
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 26-02-2023 16:10 87 comp.txt
-a---- 02-04-2023 19:32 0 emptyFile.txt
PS D:\> Kullanmak ? PowerShell'de Değişkenli Joker Karakter
? PowerShell'deki joker karakter, tam olarak bir karakterle eşleşen kalıpları bulur.
Get-ChildItem -Path 'D:\PS\' ??.* -File Yukarıdaki PowerShell betiğinde Get-ChildItem cmdlet'i, içinde yalnızca 2 karakter bulunan dosya adını bulmak amacıyla dizin adını belirtmek için Path parametresini kullanır.
Yukarıdaki PowerShell betiğinin çıktısı:
PS D:\> Get-ChildItem -Path 'D:\PS\' ??.* -File
Directory: D:\PS
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 07-04-2023 12:10 0 ad.txtDosyaları Ad Kalıplarına Göre Filtreleyin
PowerShell'de * joker karakterleri, bir dizindeki dosyaları ad düzenine göre filtrelemek için -benzeri operatörüyle birlikte kullanılabilir.
$FilePattern = "powershell*" $imageFiles = Get-ChildItem -Path 'D:\PS\' | Where-Object {$_.Name -like $FilePattern} Yukarıdaki PowerShell betiğinde Get-ChildItem, tüm öğeleri almak ve bunları Where-Object cmdlet'ine yönlendirmek için Path değişkenini kullanır. dosyaları ad kalıplarına göre alın.
Yukarıdaki PowerShell betiğinin çıktısı:
PS D:\> $FilePattern = "powershell*" PS D:\> $imageFiles = Get-ChildItem -Path 'D:\PS\' | Where-Object {$_.Name -like $FilePattern} PS D:\> $imageFiles
Directory: D:\PS
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 02-04-2023 20:51 15400 powershell-clear-variable.png
-a---- 07-04-2023 09:47 17358 powershell-convert-variables-to-string.png
-a---- 02-04-2023 19:37 7396 powershell-create-empty-file.png
-a---- 02-04-2023 17:37 10133 powershell-get-temp-folder.png
-a---- 07-04-2023 08:31 12163 powershell-is-null-or-empty-check-for-variable.png
-a---- 02-04-2023 22:04 19830 powershell-read-only-variable.png
-a---- 02-04-2023 18:10 10850 powershell-temporary-file.png
-a---- 07-04-2023 11:58 7162 powershell-variable-wildcards.png
PS D:\> Harika İpucu: PowerShell'de Yol'da bir değişken nasıl kullanılır?
Ad Modellerine Göre Süreçleri Bul
Wildcard *, PowerShell'de ad kalıplarına göre bir sistemde çalışan işlemleri bulmak için kullanılabilir.
$processPattern = "chrome*" $services = Get-Process | Where-Object {$_.ProcessName -like $processPattern} $services Çözüm
PowerShell değişken joker karakterlerinin * ve ? ile nasıl kullanılacağına ilişkin yukarıdaki makalenin size yardımcı olacağını umuyorum.
Joker karakterler esnek arama kalıpları oluşturup yazmanıza ve komut dosyası verimliliğini artırmanıza olanak tanır.
PowerShell Active Directory komutları ve PowerShell temelleri hakkında daha fazla konuyu ShellGeek ana sayfasında bulabilirsiniz.
