Out-File
將輸出傳送至檔案。
語法
ByPath (預設值)
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Out-File Cmdlet 會將輸出傳送至檔案。 當您需要為輸出指定參數時,請使用 Out-File redirection 運算子 (),而不是重定向運算符 (>)。
範例
範例 1:傳送輸出並建立檔案
此範例示範如何將本機計算機進程清單傳送至檔案。 如果檔案不存在,Out-File 會在指定的路徑中建立檔案。
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
Get-Process Cmdlet 會取得本機電腦上執行的進程清單。
Process 物件會從管線向下傳送至 Out-File Cmdlet。
Out-File 會使用 FilePath 參數,並在名為 Process.txt的目前目錄中建立檔案。
Get-Content 命令會從檔案取得內容,並在 PowerShell 控制台中顯示它。
範例 2:防止覆寫現有的檔案
此範例會防止覆寫現有的檔案。 根據預設,Out-File 會覆寫現有的檔案。
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get-Process Cmdlet 會取得本機電腦上執行的進程清單。
Process 物件會從管線向下傳送至 Out-File Cmdlet。
Out-File 會使用 FilePath 參數,並嘗試寫入目前目錄中名為 Process.txt的檔案。
NoClobber 參數可防止覆寫檔案,並顯示檔案已經存在的訊息。
範例 3:以 ASCII 格式將輸出傳送至檔案
此範例示範如何使用特定編碼類型來編碼輸出。
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50
Get-Process Cmdlet 會取得本機電腦上執行的進程清單。
Process 物件會儲存在 變數中,$Procs。
Out-File 會使用 FilePath 參數,並在名為 Process.txt的目前目錄中建立檔案。
InputObject 參數會將 $Procs 中的行程物件傳遞至檔案 Process.txt。
Encoding 參數會將輸出轉換成 ASCII 格式。
Width 參數會將檔案中的每個行限制為 50 個字元,因此可能會截斷某些數據。
範例 4:使用提供者並將輸出傳送至檔案
此示例演示如何在不 Out-File 在 FileSystem 提供程式驅動器中時使用 cmdlet。 使用 Get-PSProvider Cmdlet 來檢視本機電腦上的提供者。 如需詳細資訊,請參閱 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
Set-Location 命令會使用 Path 參數,將目前的位置設定為登錄提供者 Alias:。
Get-Location Cmdlet 會顯示 Alias:的完整路徑。
Get-ChildItem 將物件向下傳送至 Out-File Cmdlet。
Out-File 會使用 FilePath 參數來指定輸出的完整路徑和檔名,C:\TestDir\AliasNames.txt。
Get-Content Cmdlet 會使用 Path 參數,並在 PowerShell 控制台中顯示檔案的內容。
參數
-Append
將輸出新增至現有檔案的結尾。
如果未指定編碼,Cmdlet 會使用預設編碼。 該編碼可能不符合目標檔案的編碼方式。 這與重新導向運算子 (>>) 的行為相同。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | cf |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Encoding
指定目標檔案的編碼類型。 預設值為 Unicode。
此參數可接受的值如下:
- ASCII 使用 ASCII (7 位) 字元集。
- BigEndianUnicode 使用 UTF-16 與 big-endian 位元組順序。
- 預設 使用對應至系統使用中代碼頁的編碼方式(通常是 ANSI)。
- OEM 使用對應至系統目前 OEM 代碼頁的編碼方式。
- 字串 與 unicode 相同。
- Unicode 使用 UTF-16 搭配位元組順序。
未知 與 Unicode相同。 - UTF7 使用 UTF-7。
- UTF8 使用 UTF-8。
- UTF32 使用 UTF-32 搭配位元組順序。
參數屬性
| 類型: | String |
| 預設值: | Unicode |
| 接受的值: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-FilePath
指定輸出檔案的路徑。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
ByPath
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Force
覆寫唯讀屬性,並覆寫現有的唯讀檔案。 Force 參數不會覆寫安全性限制。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
指定要寫入檔案的物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-LiteralPath
指定輸出檔案的路徑。 LiteralPath 參數的使用方式與鍵入的參數完全相同。 不接受萬用字元。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。 如需詳細資訊,請參閱 about_Quoting_Rules。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | PSPath |
參數集
ByLiteralPath
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-NoClobber
NoClobber 會防止覆寫現有的檔案,並顯示檔案已經存在的訊息。 根據預設,如果檔案存在於指定的路徑中,Out-File 會覆寫檔案而不發出警告。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | NoOverwrite |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-NoNewline
指定寫入檔案的內容不以換行符結尾。 輸入物件的字串表示會串連以形成輸出。 輸出字串之間不會插入空格或換行符。 最後一個輸出字串之後不會新增任何換行符。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 指令未執行。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 無線 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Width
指定每行輸出中的字元數。 任何其他字元都會被截斷,不會包裝。 如果不使用此參數,則寬度由主機的特徵決定。 PowerShell 控制台的預設值為 80 個字元。
參數屬性
| 類型: | Int |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
PSObject
您可以使用管線將任何物件傳送至 Out-File。
輸出
None
Out-File 不會產生任何輸出。
備註
這些 Out cmdlet 不設定物件的格式;它們只是呈現物件並將其發送到指定的顯示目標。 如果您將未格式化的物件傳送到 Out Cmdlet,該 Cmdlet 會在轉譯之前將其傳送到格式化 Cmdlet。
若要將PowerShell命令的輸出傳送至 Out-File Cmdlet,請使用管線。 您可以將數據存儲在變數中,並使用 InputObject 參數將數據傳遞給 Out-File cmdlet。
Out-File 發送數據,但它不會生成任何 output 物件。 如果通過管道傳輸 Out-File to Get-Member的輸出,則 Get-Member cmdlet 會報告未指定任何物件。