Links
Comment on page

👨‍💻 PowerShell

Windows PowerShell kullanımı

✨ PowerShell'i Güncelleme

  • 👨‍💻 Powershell GitHub sayfasından 🏷️ Release alanına girin
  • 📦 MSIX paketini bulun ve indirin (link)
  • 🐞 This app package is not supported for installation by App Installer because it uses certain restricted capabilities uyarısı gelirse
    • ⚙️ Ayarlardan geliştirici modunu açın
    • 👨‍💻 Add-AppxPackage -Path $PathToMsix komutu ile paketi kurun
    • 📢 $PathToMsix alanına dosya yolunu yazmayı unutmayın
‍🧙‍♂ Detaylı bilgi için Can't install msix alanına bakabilirsin.

🤵 Profile Dosyası

  • Powershell her açıldığında derlenen dosyadır (linux bash-profile.sh gibi)
  • %USERPROFILE%\Documents\WindowsPowerShell\profile.ps1 dizininde bulunur
  • OneDrive için %USERPROFILE%\OneDrive\Documents\WindowsPowerShell\profile.ps1

💞 Kısayol Oluşturma

  • 🏗️ Kısayol oluşturmak için Set-PSReadLineKeyHandler
  • 🧹 Kısayol kaldırmak için Remove-PSReadLineKeyHandler
Set-PSReadLineKeyHandler -Key Ctrl+w -Function BackwardKillWord
Remove-PSReadLineKeyHandler -Key Ctrl+w

🐧 Bash gibi İşlevsellikler Katma

  • 📂 Profile dosyanızı açın (🤵 Profile Dosyası alanına bakabilirsiniz)
  • 📝 Açılan dosyanın en altın alttaki kod parçasını kopyalayın
# Ctrl W tuşu ile kelime silme
Set-PSReadLineKeyHandler -Key Ctrl+w -Function BackwardKillWord
# Tab tuşu ile kelime tamamlama (Complete yerine MenuComplete de olur)
Set-PSReadlineKeyHandler -Key Tab -Function Complete
‍🧙‍♂ Detaylı bilgi için How to make PowerShell tab completion work like Bash alanına bakabilirsin.

💠 Fonksiyon Tanımlama

# Script için admin yetkisi zorunlu kılma
#Requires -RunAsAdministrator
function TestFunc {
# Parametre tanımlaması
param(
[Parameter(Mandatory=$true, HelpMessage="Username")]
[string]$Username,
[Parameter(Mandatory=$false, HelpMessage="Name")]
[string]$Name,
)
echo "$Username, $Name"
}

🔤 String içerisinde string arama

// String aramaları büyük küçük harfe duyarlıdır
"yemreak.com".IndexOf("Yemreak") // -1
"yemreak.com".IndexOf("yemreak") // 0
// Aşağıdaki gibi flag vererek bunu kapatabiliriz
"yemreak.com".IndexOf("Yemreak", [System.StringComparison]::CurrentCultureIgnoreCase) // 0
‍🧙‍♂ Detaylı bilgi için How do I find the position of substring in PowerShell after position x?alanına bakabilirsin.

👨‍🔧 Kopyalanan Kodun Tersten Yazılma Sorunu

  • Powershell farklı bir EoF karakteri ile biten scriptleri tersten kopyalayabiliyor
  • Bu sorunu çözmek için önce not defterine yapıştırın, ardından oradakini kopyalayıp powershell üzerine yapıştırın

⏬ İndirme İşlemleri

$url = "https://www.autohotkey.com/download/1.1/AutoHotkey_1.1.31.01_setup.exe"
$output = "$PSScriptRoot\ahk_install.exe"
$wc = New-Object System.Net.WebClient
$UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"
$wc.Headers.Add([System.Net.HttpRequestHeader]::UserAgent, $UserAgent);
$wc.DownloadFile($url, $output)
2023 © Yunus Emre AK