Metin Düzenlemeyi Güçlendirin: Dosyalara PowerShell Ekleme


Birden fazla metin dosyasını birleştirmek için saatler mi harcıyorsunuz? Cevabınız evet ise, ister yazar, ister kodlayıcı, ister veri analisti olun, bırakın PowerShell kurtarmaya gelsin. PowerShell ile dosyalara (hatta salt okunur dosyalara) ekleme işlemi hızlı olabilir.

Bu öğreticide, PowerShell'in metin düzenlemede daha akıllı çalışmanıza, daha kritik görevlere odaklanmanız için zaman ayırmanıza nasıl yardımcı olduğunu keşfedeceksiniz.

Hazır? Sıkıcı manuel işlere elveda deyin ve metin düzenleme becerilerinizi güçlendirin!

Önkoşullar

Bu eğitim uygulamalı bir gösteri olacaktır. Devam etmek için PowerShell'in yüklü olduğu bir Windows sistemine ihtiyacınız olacak. Bu eğitimde PowerShell 7 ile Windows 11 kullanılmaktadır.

PowerShell ile Çalışmak Dosyalara Eklemek

Bir metin dosyasını, içeriğinin üzerine yazdığınızı fark etmeden güncellemek felaketle sonuçlanabilir. Ama endişelenmeyin. PowerShell'de, mevcut içeriği korurken dosyalara ekleme yapmak İçerik Ekle cmdlet'i sayesinde hızlı bir iştir.

Aşağıda bir metin dosyasına metin eklemeye yönelik sözdizimi verilmiştir; burada -Path metin dosyasının yolunu (FILE_PATH) belirtir ve -Value metni belirtir eklemek.

Add-Content -Path "FILE_PATH" -Value "New text to append”

Bir betiğin yürütülmesi sırasında oluşan hataları kaydeden error.log adında bir günlük dosyanız olduğunu varsayalım. Komut dosyası her çalıştırıldığında dosyanın sonuna yeni hatalar eklemek istiyorsunuz.

İçerik Ekle cmdlet'inin nasıl çalıştığını görmek için şu adımları izleyin:

1. Konsola çıktı sağlamayan ancak geçerli dizinde (.log) error.log adında bir örnek dosya oluşturan aşağıdaki Set-Content komutunu çalıştırın. ) bir miktar içerikle.

Set-Content -Path "./error.log" -Value "This is a sample error message.”

2. Daha sonra, birini sıfıra bölmeye çalışan (1/0) aşağıdaki kodu çalıştırın ve error.log dosyanızın sonuna bir mesaj ekleyin. Bir hata oluştuğunda dosyası.

Alternatif olarak, bir PowerShell betik dosyası oluşturabilir, aşağıdaki kodu dosyaya doldurabilir ve çalıştırabilirsiniz.

İçerik Ekle cmdlet'i herhangi bir hata mesajını error.log dosyasının sonuna eklediğinden aşağıdaki kod konsola çıktı sağlamaz.

try {
    # Put your code here
    $result = 1/0
} catch {
    # If an error occurs, set the error message to a string variable
    $ErrorMessage = "An error occurred: $_"
    # Write the error message to the error.log file
    Add-Content -Path "./error.log" -Value $ErrorMessage
}

3. Şimdi, hata mesajının error.log dosyasına başarıyla eklendiğini doğrulamak için aşağıdaki Get-Content komutunu çalıştırın.

Get-Content -Path "./error.log”

Aşağıda, yeni hata mesajı error.log dosyanızın sonuna eklenmiştir.

PowerShell'de Yönlendirme Karakterleri Aracılığıyla Metin Ekleme

PowerShell'de yeniden yönlendirme karakteri, bir komutun çıktısını bir dosyaya veya başka bir komuta yönlendirmek için kullanılan özel bir semboldür.

PowerShell'de en sık kullanılan yönlendirme karakterleri aşağıdaki gibidir:

> – Greater-than symbol.

Bir komutun çıktısını mevcut içeriğin üzerine yazarak bir dosyaya yönlendirir.

>> – Double greater-than symbols.

Bir komutun çıktısını bir dosyaya yeniden yönlendirir ve mevcut içeriğin üzerine yazmadan çıktıyı dosyanın sonuna ekler.

Metin eklerken çift büyüktür sembolünün nasıl çalıştığını göstermek için:

1. Geçerli dizinde bazı metinlerin bulunduğu running_process.log adlı bir dosya oluşturmak için aşağıdaki Set-Content komutunu çalıştırın.

Set-Content -Path "./running_process.log" -Value "Running processes go here."

2. Ardından, çalışan tüm işlemleri almak için Get-Process komutunu çalıştırın ve sonucu (>>) running_process'in sonuna ekleyin. log dosyasının içeriğini kaydedin.

Sonuç bir dosyaya eklendiğinden bu komut konsola çıktı üretmez.

Get-Process >> Running_process.log

Get-Process >> running_process.log

3. Son olarak, running_process.log dosyasının yeni çalışan işlemlere eklendiğini doğrulamak için aşağıdaki cat komutunu çalıştırın.

cat running_process.log

Mevcut Dosyaların İçeriklerini Başka Bir Dosyaya Ekleme

Şu ana kadar metinlerin (komut sonuçlarının) bir dosyaya nasıl ekleneceğini gördünüz. Peki mevcut bir dosyanın içeriğini diğerine eklemeye ne dersiniz? Mevcut bir dosyanın içeriğini başka bir dosyaya eklemek, PowerShell'de metin tabanlı dosyalarla çalışırken uygun bir teknik olabilir.

Birden fazla günlük dosyanız olduğunu varsayalım. İş akışlarınızı kolaylaştırmak ve dosyalarınızı daha verimli bir şekilde yönetmek için bunları tek bir dosyada birleştirebilirsiniz.

Mevcut bir dosyanın içeriğini diğerine eklemek için:

Her biri belirli bir içeriğe sahip olan üç günlük dosyası (Dosya Dışı) oluşturmak ve üç günlük dosyasının tümünün içeriğini tek bir hedef günlük dosyasına eklemek için aşağıdaki kodu çalıştırın.

Önceki örneklerde olduğu gibi, aşağıdaki kod konsola çıktı sağlamaz ancak eklenen içerikleri bir sonraki adımda doğrulayacaksınız.

# Define the paths of the source and destination files
$logFile1Path = "C:\logs\log1.txt"
$logFile2Path = "C:\logs\log2.txt"
$logFile3Path = "C:\logs\log3.txt"
$destinationFilePath = "C:\logs\combinedLogs.txt"

# Create three log files with some content
"Log entry 1" | Out-File -FilePath $logFile1Path
"Log entry 2" | Out-File -FilePath $logFile2Path
"Log entry 3" | Out-File -FilePath $logFile3Path

# Get-Content - Read the contents of each source log file.
# Add-Content - Append the contents of the log files to the destination log file.
Add-Content $destinationFilePath (Get-Content $logFile1Path)
Add-Content $destinationFilePath (Get-Content $logFile2Path)
Add-Content $destinationFilePath (Get-Content $logFile3Path)

Şimdi, tüm günlük dosyalarının içeriğinin hedef günlük dosyasına başarıyla eklendiğini doğrulamak için aşağıdaki cat komutunu çalıştırın.

cat "C:\logs\combinedLogs.txt"

Salt Okunur Dosyalara İçerik Ekleme

Salt okunur dosya, görüntüleyebileceğiniz/açabileceğiniz ancak düzenleme veya değişiklik için kilitli olan bir dosyadır. Ancak bazı durumlarda, örneğin bir yapılandırma dosyasını güncellerken salt okunur bir dosyaya metin eklemek gerekli olabilir. Bu kısıtlamalarla salt okunur dosyalara nasıl içerik ekleyebilirsiniz?

Salt okunur bir dosyaya içerik eklemek üç adımdan oluşur; dosyanın salt okunur özniteliğini geçici olarak kaldırın, değişiklikler yapın ve salt okunur özniteliği geri yükleyin.

Bu bölümdeki ilk iki kodun konsola çıktı sağlamadığını ancak eklenen içerikleri daha sonra doğrulayacağınızı unutmayın.

1. Bazı içeriklere sahip bir yapılandırma dosyası (config.xml) oluşturmak (Out-File) için aşağıdaki kodu çalıştırın ve dosyanın salt okunur özelliğini (Set-ItemProperty) değerini $True olarak ayarlayın.

# Define the path and name of the config file
$configFilePath = "C:\config\config.xml"

# Create the config file with some initial content
@"
<config>
    <setting1>true</setting1>
    <setting2>false</setting2>
</config>
"@ | Out-File -FilePath $configFilePath

# Set the config file as read-only
Set-ItemProperty -Path $configFilePath -Name IsReadOnly -Value $True

2. Şimdi, salt okunur özniteliği ($False) kaldırmak, dosyaya yeni içerik (İçerik Ekle) eklemek için aşağıdaki kodu çalıştırın ve salt okunur özniteliği $True'a geri döndürün.

# Check if the file is read-only
$isReadOnly = (Get-ItemProperty -Path $configFilePath -Name IsReadOnly).IsReadOnly

if ($isReadOnly) {
    # Remove the read-only attribute from the file
    Set-ItemProperty -Path $configFilePath -Name IsReadOnly -Value $False

    # Append some new content to the file
    Add-Content -Path $configFilePath -Value "<setting3>New Setting</setting3>"

    # Restore the read-only attribute on the file
    Set-ItemProperty -Path $configFilePath -Name IsReadOnly -Value $True
}
else {
    Write-Host "The file is not read-only."
}

3. Son olarak, yeni ayarın config.xml dosyasına başarıyla eklendiğini doğrulamak için aşağıdaki cat komutunu çalıştırın.

cat "C:\config\config.xml"

Çözüm

PowerShell, farklı cmdlet'leri ve yeniden yönlendirme karakterlerini kullanarak dosyalara metin eklemenin güçlü bir yolunu sağlar. Bu eğitimde PowerShell'in bir dosyaya metin eklediğini, birden fazla içeriği tek bir içerikte birleştirdiğini ve hatta salt okunur dosyaları değiştirdiğini gördünüz.

Biraz pratik ve yaratıcılıkla iş akışlarınızı kolaylaştırmak ve metin tabanlı dosyalarla daha verimli çalışmak için PowerShell'i kullanabilirsiniz.

Şimdi üretkenliği artırmak ve işinizi daha keyifli hale getirmek için neden gerçek bir PowerShell metin düzenleyicisini araştırmıyorsunuz?

İlgili makaleler