Out-File
Wysyła dane wyjściowe do pliku.
Składnia
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie Out-File
cmdlet wysyła dane wyjściowe do pliku. Niejawnie używa systemu formatowania programu PowerShell do zapisu w pliku. Plik otrzymuje tę samą reprezentację wyświetlania co terminal. Oznacza to, że dane wyjściowe mogą nie być idealne do przetwarzania programowego, chyba że wszystkie obiekty wejściowe są ciągami.
Jeśli musisz określić parametry dla danych wyjściowych, użyj operatora Out-File
przekierowania (>
). Aby uzyskać więcej informacji na temat przekierowania, zobacz about_Redirection.
Przykłady
Przykład 1. Wysyłanie danych wyjściowych i tworzenie pliku
W tym przykładzie pokazano, jak wysłać listę procesów komputera lokalnego do pliku. Jeśli plik nie istnieje, Out-File
tworzy plik w określonej ścieżce.
Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
29 22.39 35.40 10.98 42764 9 Application
53 99.04 113.96 0.00 32664 0 CcmExec
27 96.62 112.43 113.00 17720 9 Code
Polecenie Get-Process
cmdlet pobiera listę procesów uruchomionych na komputerze lokalnym. Obiekty procesu są wysyłane w dół potoku Out-File
do polecenia cmdlet. Out-File
używa parametru FilePath i tworzy plik w bieżącym katalogu o nazwie Process.txt. Polecenie Get-Content
pobiera zawartość z pliku i wyświetla ją w konsoli programu PowerShell.
Przykład 2. Zapobieganie zastępowaniu istniejącego pliku
W tym przykładzie nie można zastąpić istniejącego pliku. Domyślnie Out-File
zastępuje istniejące pliki.
Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Polecenie Get-Process
cmdlet pobiera listę procesów uruchomionych na komputerze lokalnym. Obiekty procesu są wysyłane w dół potoku Out-File
do polecenia cmdlet. Out-File
używa parametru FilePath i próbuje zapisać w pliku w bieżącym katalogu o nazwie Process.txt. Parametr NoClobber uniemożliwia zastąpienie pliku i wyświetla komunikat, że plik już istnieje.
Przykład 3. Wysyłanie danych wyjściowych do pliku w formacie ASCII
W tym przykładzie pokazano, jak kodować dane wyjściowe przy użyciu określonego typu kodowania.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50
Polecenie Get-Process
cmdlet pobiera listę procesów uruchomionych na komputerze lokalnym. Obiekty procesu są przechowywane w zmiennej $Procs
. Out-File
używa parametru FilePath i tworzy plik w bieżącym katalogu o nazwie Process.txt. Parametr InputObject przekazuje obiekty procesu do $Procs
pliku Process.txt. Parametr Kodowanie konwertuje dane wyjściowe na format ASCII . Parametr Width ogranicza każdy wiersz w pliku do 50 znaków, aby niektóre dane mogły zostać obcięte.
Przykład 4. Używanie dostawcy i wysyłanie danych wyjściowych do pliku
W tym przykładzie pokazano, jak używać Out-File
polecenia cmdlet, gdy nie znajdujesz się na dysku dostawcy systemu plików . Get-PSProvider
Użyj polecenia cmdlet , aby wyświetlić dostawców na komputerze lokalnym. Aby uzyskać więcej informacji, zobacz about_Providers.
PS> Set-Location -Path Alias:
PS> Get-Location
Path
----
Alias:\
PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt
PS> Get-Content -Path C:\TestDir\AliasNames.txt
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias cat -> Get-Content
Polecenie Set-Location
używa parametru Path , aby ustawić bieżącą lokalizację dostawcy Alias:
rejestru . Polecenie Get-Location
cmdlet wyświetla pełną ścieżkę dla elementu Alias:
.
Get-ChildItem
wysyła obiekty w dół potoku Out-File
do polecenia cmdlet. Out-File
Używa parametru FilePath, aby określić pełną ścieżkę i nazwę pliku dla danych wyjściowych, C:\TestDir\AliasNames.txt. Polecenie Get-Content
cmdlet używa parametru Path i wyświetla zawartość pliku w konsoli programu PowerShell.
Przykład 5. Ustawianie szerokości danych wyjściowych pliku dla całego zakresu
W tym przykładzie użyto $PSDefaultParameterValues
polecenia , aby ustawić Width
parametr dla wszystkich wywołań i operatorów Out-File
przekierowania (>
i >>
) na wartość 2000. Dzięki temu program PowerShell używa szerokości linii 2000 zamiast szerokości wiersza określonej przez szerokość konsoli hosta programu PowerShell wszędzie w bieżącym zakresie, w którym są wyświetlane dane sformatowane w tabeli.
function DemoDefaultOutFileWidth() {
try {
$PSDefaultParameterValues['out-file:width'] = 2000
$logFile = "$pwd\logfile.txt"
Get-ChildItem Env:\ > $logFile
Get-Service -ErrorAction Ignore |
Format-Table -AutoSize |
Out-File $logFile -Append
Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
}
finally {
$PSDefaultParameterValues.Remove('out-file:width')
}
}
DemoDefaultOutFileWidth
Aby uzyskać więcej informacji na temat $PSDefaultParameterValues
programu , zobacz about_Preference_Variables.
Parametry
-Append
Dodaje dane wyjściowe na końcu istniejącego pliku. Jeśli nie określono kodowania , polecenie cmdlet używa kodowania domyślnego. Kodowanie to może nie być zgodne z kodowaniem pliku docelowego. Jest to takie samo zachowanie jak operator przekierowania (>>
).
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Określa typ kodowania dla pliku docelowego. Domyślna wartość to unicode
.
Dopuszczalne wartości tego parametru są następujące:
ascii
Używa zestawu znaków ASCII (7-bitowego).bigendianunicode
Używa formatu UTF-16 z kolejnością bajtów big-endian.default
Używa kodowania odpowiadającego aktywnej stronie kodu systemu (zwykle ANSI).oem
Używa kodowania odpowiadającego bieżącej stronie kodowej producenta OEM systemu.string
Tak samo jakunicode
.unicode
Używa formatu UTF-16 z kolejnością bajtów little-endian.unknown
Tak samo jakunicode
.utf7
Używa protokołu UTF-7.utf8
Używa protokołu UTF-8.utf32
Używa formatu UTF-32 z kolejnością bajtów little-endian.
Type: | String |
Accepted values: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | 1 |
Default value: | Unicode |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Określa ścieżkę do pliku wyjściowego.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Zastępuje atrybut tylko do odczytu i zastępuje istniejący plik tylko do odczytu. Parametr Force nie zastępuje ograniczeń zabezpieczeń.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Określa obiekty, które mają być zapisywane w pliku. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Określa ścieżkę do pliku wyjściowego. Parametr LiteralPath jest używany dokładnie tak, jak został wpisany. Symbole wieloznaczne nie są akceptowane. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki. Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoClobber
Polecenie NoClobber uniemożliwia zastąpienie istniejącego pliku i wyświetla komunikat, że plik już istnieje. Domyślnie, jeśli plik istnieje w określonej ścieżce, Out-File
zastępuje plik bez ostrzeżenia.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewline
Określa, że zawartość zapisana w pliku nie kończy się znakiem nowego wiersza. Reprezentacje ciągów obiektów wejściowych są łączone w celu utworzenia danych wyjściowych. Między ciągami wyjściowymi nie są wstawione spacje ani nowe linie. Nie dodano nowego wiersza po ostatnim ciągu danych wyjściowych.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie jest uruchamiane.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
Określa maksymalną liczbę znaków w każdym wierszu danych wyjściowych. Wszelkie dodatkowe znaki są obcinane, nie owinięte. Jeśli ten parametr nie jest używany, szerokość jest określana przez cechy hosta. Domyślną wartością konsoli programu PowerShell jest 80 znaków. Jeśli chcesz kontrolować szerokość dla wszystkich wywołań, a także operatorów Out-File
przekierowania (>
i >>
), ustaw $PSDefaultParameterValues['out-file:width'] = 2000
przed użyciem polecenia Out-File
.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać dowolny obiekt.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
Obiekty wejściowe są automatycznie formatowane tak, jak w terminalu, ale można użyć Format-*
polecenia cmdlet, aby jawnie kontrolować formatowanie danych wyjściowych w pliku. Na przykład Get-Date | Format-List | Out-File out.txt
Aby wysłać dane wyjściowe polecenia programu PowerShell do Out-File
polecenia cmdlet, użyj potoku. Alternatywnie można przechowywać dane w zmiennej i użyć parametru InputObject , aby przekazać dane do Out-File
polecenia cmdlet.
Out-File
zapisuje dane w pliku, ale nie generuje żadnych obiektów wyjściowych w potoku.
Linki powiązane
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla