| Termin | Definicja |
|---|---|
| Out-File – zapis do pliku | Out-File w PowerShell zapisuje dane wyjściowe polecenia do pliku tekstowego, z opcjami kodowania i dołączania do istniejącej zawartości. Out-File – zapis do pliku w PowerShellu
Najprostsza postać wygląda następująco:
W tym przykładzie Warto rozróżnić zapis wyniku od przekierowania samego strumienia. W PowerShellu można spotkać także operator Out-File i kontekst techniczny zapisuPowerShell operuje na obiektach, lecz konsola pokazuje ich sformatowaną postać. Gdy obiekt zostaje przekazany do Przykładowo:
tutaj tworzy czytelny raport tekstowy. Jeżeli celem jest zachowanie właściwości obiektów w formie możliwej do ponownego wczytania, lepszym rozwiązaniem może być Istotne znaczenie ma kodowanie. W zależności od wersji PowerShella i użytych parametrów plik może zostać zapisany w innym formacie znaków. Ma to znaczenie dla polskich liter, na przykład w nazwach użytkowników, folderów lub komunikatach błędów. Parametr
Przy wymianie plików między różnymi narzędziami warto ustalić kodowanie świadomie. Jeżeli plik będzie otwierany w starszym programie, przekazywany do innego systemu albo analizowany przez skrypt, przypadkowy wybór kodowania może spowodować pojawienie się nieprawidłowych znaków. Sam fakt, że tekst wygląda poprawnie w jednym edytorze, nie gwarantuje poprawnego odczytu w każdym środowisku. Out-File – typowe problemy i różnice działaniaJednym z częstszych problemów jest próba zapisania danych do folderu, który nie istnieje.
może więc zakończyć się błędem, jeśli katalog Drugą kwestią jest nadpisywanie istniejącego pliku. Standardowy zapis może zastąpić wcześniejszą zawartość. Jeżeli zamierzeniem jest zachowanie dotychczasowego tekstu i dodanie kolejnego fragmentu, należy użyć parametru
Dopisywanie jest przydatne przy prostych dziennikach zdarzeń, lecz trzeba kontrolować rozmiar pliku. W wielokrotnie uruchamianym skrypcie brak ograniczenia może doprowadzić do powstania bardzo obszernego logu. Warto wtedy rozważyć osobne pliki dla kolejnych dni lub okresowe archiwizowanie starszych zapisów. Problemem może być także szerokość linii. Domyślne formatowanie bywa dostosowane do rozmiaru konsoli, a nie do potrzeb raportu. Przy długich właściwościach tekst może zostać zawinięty, przez co odczyt staje się mniej wygodny. Parametr
Nie rozwiązuje to każdego problemu z układem, ponieważ sposób formatowania zależy również od polecenia źródłowego. Gdy wymagany jest precyzyjny układ raportu, czytelniejsze może być wcześniejsze użycie Warto też zwrócić uwagę na uprawnienia. Zapis do niektórych lokalizacji może wymagać odpowiednich praw użytkownika. Błąd nie musi oznaczać problemu z samym Out-File w praktyce – dobre nawykiPrzy budowaniu skryptu dobrze jest najpierw określić, kto i w jaki sposób będzie czytał rezultat. Dla człowieka przydatny może być zwykły raport tekstowy:
Dla kolejnego etapu automatyzacji lepszy będzie format zachowujący pola i wartości. Rozdzielenie tych dwóch zastosowań ogranicza liczbę pomyłek. Plik tworzony przez Pomaga również używanie pełnych, jednoznacznych ścieżek. Ścieżka względna zależy od bieżącego katalogu procesu, który może być inny podczas uruchamiania ręcznego, inny w edytorze skryptów, a jeszcze inny w zadaniu zaplanowanym. Bieżącą lokalizację można sprawdzić poleceniem Nie należy zapisywać do pliku tekstowego poufnych danych bez oceny ryzyka. Raport może zawierać nazwy kont, ścieżki katalogów, identyfikatory urządzeń, komunikaty błędów lub fragmenty konfiguracji. Jeżeli plik jest przeznaczony do przekazania dalej, trzeba ograniczyć zakres informacji do niezbędnego minimum i zadbać o prawa dostępu. Przydatna jest także kontrola błędów. Sam zapis wyniku polecenia nie zawsze informuje, że wcześniejsza operacja wykonała się poprawnie. W skrypcie można sprawdzać zmienną Jeżeli tekst jest tworzony dynamicznie, można najpierw przygotować zawartość w zmiennej, a dopiero potem zapisać ją jednym poleceniem. Ułatwia to dodanie tytułu, czasu wykonania i własnych sekcji:
W tym wariancie Kiedy sprawdzić działanie Out-File w serwisie komputerowymPo Jeżeli nie ma pewności, czy problem dotyczy składni PowerShella, uprawnień do folderu, kodowania czy samego systemu, można skonsultować sytuację z firmą Warszawskie Pogotowie Komputerowe 24/7. Przed przekazaniem raportu dobrze jest usunąć dane, które nie są potrzebne do diagnozy, oraz opisać, jakie polecenia zostały uruchomione i jaki rezultat uzyskano. Dzięki temu zapis utworzony przez W praktyce najważniejsze jest dopasowanie narzędzia do celu. |