PowerShell:
Pisanie pliku tekstowego
Jak:
PowerShell zapewnia proste polecenia cmdlet do obsługi plików. Głównie używa się cmdletu Out-File
oraz operatorów przekierowania do tego celu. Oto przykłady ilustrujące jak zapisać tekst do plików w różnych scenariuszach:
Podstawowe tworzenie pliku tekstowego:
Aby stworzyć plik tekstowy i zapisać do niego prosty ciąg tekstowy, możesz użyć:
"Hello, World!" | Out-File -FilePath .\example.txt
Lub równoważnie z operatorem przekierowania:
"Hello, World!" > .\example.txt
Dopisywanie tekstu do istniejącego pliku:
Jeśli chcesz dodać tekst na końcu istniejącego pliku bez nadpisywania go:
"Another line." | Out-File -FilePath .\example.txt -Append
Lub używając operatora przekierowania do dopisywania:
"Another line." >> .\example.txt
Zapisywanie wielu linii:
Do zapisywania wielu linii możesz użyć tablicy ciągów tekstowych:
$lines = "Line 1", "Line 2", "Line 3"
$lines | Out-File -FilePath .\multilines.txt
Określanie kodowania:
Aby określić konkretne kodowanie tekstu, użyj parametru -Encoding
:
"Text with UTF8 Encoding" | Out-File -FilePath .\utfexample.txt -Encoding UTF8
Użycie bibliotek firm trzecich:
Chociaż wbudowane polecenia cmdlet w PowerShell wystarczają do podstawowych operacji na plikach, bardziej skomplikowane zadania mogą korzystać z modułów firm trzecich, takich jak PowershellGet
, czy narzędzi jak SED
i AWK
przeniesionych dla systemu Windows. Jednak do czystego zapisywania pliku tekstowego mogą one być niepotrzebne i ogólnie rzecz biorąc, nie są wymagane:
# Zakładając bardziej skomplikowany scenariusz uzasadniający użycie zewnętrznej biblioteki
# Install-Module -Name SomeComplexLibrary
# Import-Module -Name SomeComplexLibrary
# Tutaj bardziej skomplikowane operacje
Uwaga: Zawsze zastanów się, czy złożoność dodania zależności od strony trzeciej jest uzasadniona dla Twoich potrzeb.
Przykładowe Wyjście:
Po wykonaniu podstawowej komendy tworzenia pliku, sprawdzając zawartość example.txt
, pokazuje:
Hello, World!
Po dopisaniu tekstu i ponownym sprawdzeniu example.txt
:
Hello, World!
Another line.