PowerShell'de Dosyaya Dizi Nasıl Yazılır?


PowerShell'de bir dosyaya dizi yazmak çok yaygın bir gereksinimdir ve günlüğe kaydetme, veri dışarı aktarma veya verileri daha sonra kullanmak üzere kaydetme gibi senaryolarda çok faydalıdır. PowerShell, bir diziyi bir dosyaya yazmak için çeşitli yollar sağlar. Bu PowerShell eğitiminde, çeşitli yöntemler kullanarak PowerShell'de dosyaya bir dizinin nasıl yazılacağını açıklayacağım.

PowerShell'de bir dosyaya dizi yazmak için çıktıyı bir metin dosyasına yönlendiren Out-File cmdlet'ini kullanabilirsiniz. Örneğin, $dizi | Out-File -FilePath 'output.txt', $array içeriğini 'output.txt' dosyasına yazacaktır. Bu, dizi verilerini daha sonra kullanmak üzere veya günlük olarak bir dosyaya kaydetmenin etkili bir yoludur.

PowerShell'de Dosyaya Dizi Nasıl Yazılır

Dizi, bir öğe koleksiyonunu saklayan bir veri yapısıdır. Bu öğeler aynı türde olabileceği gibi farklı türde de olabilir. PowerShell'de bir değişkene birden çok değer atayarak bir dizi oluşturursunuz:

$data = @("apple", "banana", "cherry")

Şimdi yukarıdaki diziyi PowerShell’de çeşitli yöntemler kullanarak bir dosyaya nasıl yazabileceğimizi görelim.

Yöntem 1: Out-File'ı Kullanma

PowerShell'de bir dosyaya dizi yazmanın en basit yolu Out-File cmdlet'ini kullanmaktır. Bu cmdlet çıktıyı bir dosyaya gönderir. Bir metin dosyasına bir dizi yazmak için aşağıdaki gibi kullanabilirsiniz:

# Create an array
$fruits = @("apple", "banana", "cherry")

# Write the array to a text file
$fruits | Out-File -FilePath "C:\Bijay\fruits.txt"

Bu, C:\Bijay\fruits.txt konumunda dizinin her öğesinin yeni bir satırda yer aldığı bir metin dosyası oluşturacaktır.

Aşağıdaki ekran görüntüsünde VS kodunu kullanarak PowerShell betiğini çalıştırdıktan sonra txt dosyasını oluşturduğunu görebilirsiniz.

Yöntem 2: Yönlendirme Operatörlerini Kullanma

Bir diziyi bir dosyaya yazmanın başka bir yöntemi de yeniden yönlendirme operatörlerini kullanmaktır. > operatörü, çıktıyı bir dosyaya yazmak ve mevcut içeriğin üzerine yazmak için kullanılır. >> operatörü çıktıyı dosyanın sonuna ekler.

# Create an array
$vegetables = @("carrot", "potato", "onion")

# Write the array to a file, overwriting existing contents
$vegetables > "C:\temp\vegetables.txt"

# Append more items to the file
$vegetables += "garlic"
$vegetables >> "C:\temp\vegetables.txt"

İlk komut, sebzelerin listelendiği bir dosya oluşturacak ve ikinci komut, dosyanın sonuna "sarımsak" ifadesini ekleyecektir.

Yöntem 3: Set İçeriğini Kullanma

PowerShell Set-Content cmdlet'i Out-File'a benzer, ancak dize verileri için tasarlanmıştır ve karakter kodlaması üzerinde daha fazla kontrol sağlar.

# Create an array
$colors = @("red", "green", "blue")

# Write the array to a file
$colors | Set-Content -Path "C:\temp\colors.txt"

Bu, her renk yeni bir satırda olacak şekilde renkleri dosyaya yazacaktır.

Yöntem 4: CSV'ye aktarma

CSV biçiminde dışa aktarmak istediğiniz yapılandırılmış verileriniz varsa Export-Csv cmdlet'ini kullanabilirsiniz. Bu, her öğenin veri sütunları içeren bir satırı temsil ettiği özel nesne dizileri veya karma tabloları için kullanışlıdır.

# Create an array of hashtables
$products = @(
    @{Name="Table"; Price=50},
    @{Name="Chair"; Price=25},
    @{Name="Lamp"; Price=20}
)

# Export the array to a CSV file
$products | Export-Csv -Path "C:\temp\products.csv" -NoTypeInformation

Export-Csv cmdlet'i, dizideki her karma tablosunun bir satıra ve her anahtar/değer çiftinin bir sütuna dönüştüğü bir CSV dosyası oluşturacaktır.

Yöntem 5: İçerik Eklemeyi Kullanma

İçerik Ekle cmdlet'i, PowerShell'deki bir dosyaya veri eklemenin başka bir yoludur. >> operatöründen farklı olarak kodlamayı belirtmenize olanak tanır.

# Create an array
$numbers = 1..10

# Append the array to a file
$numbers | Add-Content -Path "C:\temp\numbers.txt"

Her numara dosyaya yeni bir satırda eklenecektir.

Notlar:

  • Bir dosyaya yazarken dosya yolunun doğru olduğundan ve bu konuma yazmak için gerekli izinlere sahip olduğunuzdan emin olun.
  • Out-File, Set-Content ve Add-Content cmdlet'leri, -Kodlama parametresi. ASCII olmayan karakterlerle çalışıyorsanız bu önemli olabilir.
  • Karmaşık veri yapılarıyla çalışıyorsanız, işlemi basit tutmak için bir dosyaya yazmadan önce bunları basit bir diziye veya dize listesine dönüştürmeyi düşünün.
  • CSV dosyanızda tür bilgisine özellikle ihtiyaç duymadığınız sürece, Export-Csv ile her zaman -NoTypeInformation parametresini kullanın.

Çözüm

PowerShell'de bir dosyaya dizi yazmak birkaç yolla gerçekleştirilebilir. Bu PowerShell eğitiminde, PowerShell'de dosyaya dizi yazmanın farklı yollarını açıkladım:

  • Out-File'ı kullanma
  • Yönlendirme Operatörlerini Kullanma
  • Set İçeriğini Kullanma
  • CSV'ye aktarma
  • İçerik Eklemeyi Kullanma

İlgili makaleler