Backup-WTProfile.ps1
function Backup-WTProfile { <# .Synopsis Backs up the Windows Terminal Profile .Description Backs up the Windows Terminal Profile. By default, backups will be placed in the same directory as $profile, and will include a datestamp. .Link Get-WTProfile .Example Backup-WTProfile #> param( # The destination path for the backup. # By default, this will be in the same directory as $profile, and will include a datestamp. [Parameter(ValueFromPipelineByPropertyName)] [string] $DestinationPath ) process { if (-not $DestinationPath) { $DestinationPath = $profile | Split-Path | Join-Path -ChildPath "WindowsTerminal.$([DateTime]::Now.ToString('yyyy-MM-dd')).backup.json" $null = New-Item -ItemType File -Path $DestinationPath -Force } $sourcePath = if (-not $script:WTProfilePath) { Get-WTProfile -Setting | Select-Object -ExpandProperty Path } else { $script:WTProfilePath.Fullname } if (-not $sourcePath) { return } Copy-Item -LiteralPath $sourcePath -Destination $DestinationPath -Force } } |