PowerShell Dosyaya Ekle | PowerShell Dosya Çalışmalarına Nasıl Eklenir?
PowerShell'e Giriş Dosyaya Ekleme
Aşağıdaki makalede PowerShell Dosyaya Ekleme için bir taslak sağlanmaktadır. PowerShell dosya işlemine ekler; Out-File, Add-Content, Export-CSV vb. gibi çeşitli cmdlet'leri kullanarak içeriği TXT, CSV, Excel, JSON vb. gibi farklı dosya türlerine eklemenin yoludur. ve mevcut dosya üzerinde çeşitli yöntemleri, içeriğe yeni bir satır ekleyerek veya dosyanın son satırının devamına veri ekleyerek kullanabilirsiniz.
PowerShell Sözdizimi Dosyaya Ekle
İçeriği mevcut dosyaya eklemek için kullanılan çeşitli cmdlet'ler vardır, ancak bunların hepsi doğrudan cmdlet'ler veya sözdizimleri değildir, ancak dosyayı eklemeye yardımcı olan parametreleri kullanırlar.
1. İçerik Ekle cmdlet'i.
Add-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]2. Dosya Dışı cmdlet'i.
Out-File
[-FilePath] <string>
[[-Encoding] <Encoding>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
İçeriği dosyaya eklemek için ayrı bir cmdlet'e sahip CSV gibi başka dosyalar da vardır.
Export-Csv
-InputObject <PSObject>
[[-Path] <String>]
[-LiteralPath <String>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-Append]
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]İçeriği dosyaya eklemek için Out-File ve Export-CSV cmdlet'indeki -Append parametresini kullanabiliriz.
PowerShell Dosya Çalışmalarına Nasıl Eklenir?
PowerShell veya başka bir programlama dilinde dosyaya eklemek veya içeriği dosyaya eklemek o kadar da zor değil. PowerShell'de, içeriği mevcut dosyaya eklemek için desteklenen çeşitli cmdlet'ler ve bunların parametreleri vardır.
C:\Temp dizininde test.txt adında bir dosya ismimiz var ve içeriği aşağıdaki gibi.
Kod:
Get-Content C:\Temp\test.txtÇıktı:
Satırı eklemek için temel sözdizimi olan ve .Net yöntemlerinde en yaygın yöntem olan çift oku (>>) kullanacağız.
Kod:
"This is the fourth line" >> C:\Temp\test.txt
Get-Content C:\Temp\test.txtÇıktı:
Son satır yeni satıra eklendi. Bunu sonuncuya eklemek yerine yeni satırı ekleyin, taşıyıcıyı (`n) kullanın.
Kod:
"`nThis is the fourth line" >> C:\Temp\test.txt
Get-Content C:\Temp\test.txtÇıktı:
Eklenecek birden fazla satırınız varsa doğrudan eklemeyi veya string değişkenini kullanabilirsiniz.
Kod:
$str = "`nThis is the fourth line.`nThis is the 5th line"
$str >> C:\Temp\test.txt
Get-Content C:\Temp\test.txtÇıktı:
Ancak bu yöntem önerilmez çünkü dosyayı diğer düzenleyicilerde kontrol ettiğinizde (notepad++ kullanın), boş değerlerin eklendiğini görebilirsiniz. Aşağıdaki anlık görüntü Notepad++ düzenleyicisinden alınmıştır.
İçeriği eklemek için Out-File, Add-Content vb. gibi başka yöntemler de vardır ve bunlar aşağıdaki örneklerde gösterilmektedir.
PowerShell Dosyaya Ekleme Örnekleri
Aşağıda PowerShell Dosyaya Ekleme örnekleri verilmiştir:
Örnek #1
Dosyayı İçerik Ekle cmdlet'iyle ekleyin.
Add-Content cmdlet'ini kullanarak dosyanın içeriğini eklemek için aynı test.txt dosyasını kullanacağız.
Kod:
"This is the 4th line" | Add-Content -Path C:\Temp\test.txtVeya
Add-Content -Value "This is the 4th line" -Path C:\Temp\test.txt
Get-Content C:\Temp\test.txtÇıktı:
Bir değişken kullanarak birden çok satırı ekleyin.
Kod:
$str = "`nThis is the 4th line. `nThis is the 5th line. `nThis is the 6th line"
$str | Add-Content -Path C:\Temp\test.txtVeya
Add-Content -Value $str -Path C:\Temp\test.txt
Get-Content C:\Temp\test.txtÇıktı:
Örnek #2
Here-String komutunu kullanarak içeriği ekleme.
Here-string @ ”.. ”@ yöntemini kullanarak birden fazla dize satırını eklemenin en iyi yolu aşağıda gösterilmiştir.
Kod:
$str = @"
`nThis is the 4th line
This is the 5th line
This is the 6th line
"@
$str | Add-Content C:\Temp\test.txt
Get-Content C:\Temp\test.txtÇıktı:
Örnek #3
Dosya Dışı komutunu kullanarak dosya ekleme.
İçeriği dosyaya eklemek için Out-File komutunu -Append parametresi ile kullanabiliriz.
Kod:
$str = @"
`nThis is the 4th line
This is the 5th line
This is the 6th line
"@
$str | Out-File -FilePath C:\Temp\test.txt -Append -Force
Get-Content C:\Temp\test.txtÇıktı:
Burada kodlama sorunu nedeniyle >> çıktısına benzer bir çıktı alacaksınız ve çıktı dosyasını Notepad++ editörüyle kontrol ettiğinizde $null değeriyle dolduruluyor. Bunu istemiyoruz, bunun yerine -encoding parametresini kullanarak bu cmdlet'in desteklediği kodlama yöntemini kullanabiliriz.
Uygun çıktı formatını elde etmek için standart ASCII veya utf8 kodlama standardını kullanabilirsiniz.
Kod:
$str | Out-File -FilePath C:\Temp\test.txt -Append -Encoding ascii -ForceÇıktı:
-Append parametresini kullandığınızdan emin olun; aksi halde dosyanın üzerine yazılacaktır.
Örnek #4
İçeriği eklemek için Set-Content komutunu kullanma.
Dosyayı eklemek için Set-Content komutunu da kullanabiliriz ancak bu, dosya ekleme işlemi için standart komut değildir çünkü mevcut dosyaya yeni içerik ekledikten sonra tüm içeriğin üzerine yazmamız gerekir.
Kod:
$str = @"
This is the 4th line
This is the 5th line
This is the 6th line
"@
$Inputfile = 'C:\Temp\test.txt'
$file = Get-Content $Inputfile
$file + $str | Set-Content $Inputfile -Force
Get-Content $InputfileÇıktı:
Örnek #5
CSV dosyası verilerini ekleme.
Zaten CSV dosyanız varsa, -Append parametresiyle Export-CSV cmdlet'ini kullanarak bunu CSV dosyasına eklemek kolaydır.
C:\temp\Services.csv konumunda aşağıdaki CSV dosyasına sahibiz ve verileri ona eklemek istiyoruz.
Eğer daha fazla servis eklemek istiyorsanız WinRM servis bilgisi diyelim, aşağıdaki komutu kullanabilirsiniz.
Kod:
Get-Service Winrm | Select Name, DisplayName, Status, StartType | Export-Csv C:\Temp\services.csv -Append -ForceÇıktı:
Çözüm
Dosyaya içerik eklemek veya dosya ekleme işlemleri en kullanışlı ve sık kullanılan işlemlerden biridir ancak tüm bunları manuel olarak yapmak ve verileri finans, İK, hukuk departmanı vb. gibi son kullanıcılara sunmak en zahmetli görevlerden biridir. ancak bu cmdlet'leri kullanarak dosya güncelleme görevini herhangi bir kullanıcı müdahalesi olmadan otomatikleştirebilir ve zamanlayabiliriz.













