2025-02-10

Powershell'de komut satırı komutlarını kullanmak

Komut satırı ilginç bir terim. İngilizcesi de command prompt, bu da çok mantıklı değil. Ama ne kastedildiği anlaşılıyordur, umarım.

Powershell kullanırken iki dosyayı karşılaştırmak istiyorum.

Compare-Object -ReferrenceObject D:\klasor1\dosya1.txt -DifferenceObject D:\klasor2\dosya2.txt

gibi yazınca doğrudan dosya içeriğini karşılaştırmıyor. İçeriği karşılaştırmak için en basit yöntem her bir dosyanın ayrı ayrı hash'lerini hesaplatmak

Compare-Object -ReferrenceObject (Get-FileHash D:\klasor1\dosya1.txt) -DifferenceObject (Get-FileHash D:\klasor2\dosya2.txt)

 ya da düz metin dosyasıylsa içeriklerini okuyup 

Compare-Object -ReferrenceObject (Get-Content D:\klasor1\dosya1.txt) -DifferenceObject (Get-Content D:\klasor2\dosya2.txt)

karşılaştırmak gerek. Böyle uzun uzadıya yazmak yerine eski güzel günlerdeki basit fc komutunu kullanmak istiyorum.

fc D:\klasor1\dosya1.txt D:\klasor2\dosya2.txt

yazınca maalesef fc komutunu Format-Custom cmdlet'inin alias'ı olarak algılıyor. Ne yapmak gerek? Powershell'i bırakıp yeni bir komut satırı penceresi/sekmesi açıp komutu tekrar yazmak bir seçenek. Ama onun yerine cmd.exe'nin /C anahtarı daha kolay. Mevcut pencerenin komut geçmişinden dosya adlarını da bir daha yazmaya gerek kalmaz. Kısaca powershell'in içinden

cmd /c fc D:\klasor1\dosya1.txt D:\klasor2\dosya2.txt

yazınca sonuca ulaşabiliryorum.

Hiç yorum yok: