Start-Transcript
建立文本檔中所有或部分 PowerShell 工作階段的記錄。
Syntax
Start-Transcript
[[-Path] <String>]
[-Append]
[-Force]
[-NoClobber]
[-IncludeInvocationHeader]
[-UseMinimalHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Transcript
[[-LiteralPath] <String>]
[-Append]
[-Force]
[-NoClobber]
[-IncludeInvocationHeader]
[-UseMinimalHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Transcript
[[-OutputDirectory] <String>]
[-Append]
[-Force]
[-NoClobber]
[-IncludeInvocationHeader]
[-UseMinimalHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdlet Start-Transcript
會將 PowerShell 工作階段的所有或部分記錄建立至文字檔。 文字記錄包含使用者輸入的所有命令,以及控制臺上出現的所有輸出。
根據預設, Start-Transcript
使用預設名稱,將文字記錄儲存在下列位置:
- 在 Windows 上:
$HOME\Documents
- 在 Linux 或 macOS 上:
$HOME
預設檔案名態 PowerShell_transcript.<computername>.<random>.<timestamp>.txt
。
從 Windows PowerShell 5.0 開始, Start-Transcript
在所有文字記錄產生的檔名中包含主機名。 檔名也包含名稱中的隨機字元,以防止當您同時啟動兩個或多個文字記錄時,可能會覆寫或重複。 如果您將文字記錄儲存在集中式位置,則包含計算機名稱很有用。 隨機字元字串可防止猜測檔名,以取得檔案的未經授權存取權。
如果目標檔案沒有位元組順序標記 (BOM), Start-Transcript
則預設為 Utf8NoBom
目標檔案中的編碼方式。
範例
範例 1:使用預設設定啟動文字記錄檔
Start-Transcript
此命令會在預設檔案位置啟動文字記錄。
範例 2:在特定位置啟動文字記錄檔
Start-Transcript -Path "C:\transcripts\transcript0.txt" -NoClobber
此命令會在的C:\transcripts
檔案中Transcript0.txt
啟動文字記錄。 NoClobber 參數可防止覆寫任何現有的檔案。 Transcript0.txt
如果檔案已經存在,命令就會失敗。
範例 3:以唯一名稱啟動文字記錄檔,並將其儲存在檔案共用上
下列範例會建立名稱唯一且足以儲存在共用位置的文字記錄檔。 檔名是從使用者的名稱、執行 PowerShell 的電腦主機名、PowerShell 版本,以及日期和時間建構。 文字記錄會儲存在檔案共用中 \\Server01\Transcripts
。
$sharepath = '\\Server01\Transcripts'
$username = $env:USERNAME
$hostname = hostname
$version = $PSVersionTable.PSVersion.ToString()
$datetime = Get-Date -f 'yyyyMMddHHmmss'
$filename = "Transcript-${username}-${hostname}-${version}-${datetime}.txt"
$Transcript = Join-Path -Path $sharepath -ChildPath $filename
Start-Transcript
文字記錄檔的完整路徑會儲存在喜好設定變數中 $Transcript
。 如需喜好設定變數的詳細資訊 $Transcript
,請參閱 about_Preference_Variables。
參數
-Append
指出這個 Cmdlet 會將新的文字記錄新增至現有檔案的結尾。 使用 Path 參數來指定檔案。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
執行 Cmdlet 之前先提示您確認。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
允許 Cmdlet 將文字記錄附加至現有的唯讀檔案。 在唯讀檔案上使用時,Cmdlet 會將檔案許可權變更為讀寫。 使用此參數時,Cmdlet 無法覆寫安全性限制。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeInvocationHeader
指出執行命令時,此 Cmdlet 會記錄時間戳。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
指定文字記錄檔的位置。 與 Path 參數不同,LiteralPath 參數的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會通知PowerShell不要將任何字元解譯為逸出序列。
Type: | String |
Aliases: | PSPath, LP |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoClobber
表示此 Cmdlet 不會覆寫現有的檔案。 根據預設,如果文字記錄檔存在於指定的路徑中, Start-Transcript
則會覆寫檔案而不發出警告。
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputDirectory
指定要在其中儲存文字記錄的特定路徑和資料夾。 PowerShell 會自動指派文字記錄名稱。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
指定文字記錄檔的位置。 輸入檔案的路徑 .txt
。 不允許通配符。 如果路徑中的任何目錄不存在,命令就會失敗。
如果您未指定路徑, Start-Transcript
請使用全域變數值 $Transcript
中的路徑。 如果您尚未建立此變數, Start-Transcript
請將文字記錄儲存在預設位置和檔名中。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseMinimalHeader
在文字記錄前面加上簡短標頭,而不是預設包含的詳細標頭。 此參數已在PowerShell 6.2中新增。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 Cmdlet 未執行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回包含確認訊息和輸出檔案路徑的字串。
備註
若要停止文字記錄,請使用 Stop-Transcript
Cmdlet。
若要記錄整個工作階段,請將 命令新增 Start-Transcript
至您的設定檔。 如需詳細資訊,請參閱 about_Profiles。
相關連結
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應