Save and restore vs code settings
Save vs code settings to current folder (optionally provider save targer folder path)
param(
[string]$destinationPath = "."
)
# Resolve full path
$destinationPath = Resolve-Path -Path $destinationPath
# Define the source directory
$sourcePath = "$env:APPDATA\Code\User"
# Ensure the destination folder exists
if (!(Test-Path -Path $destinationPath)) {
New-Item -ItemType Directory -Path $destinationPath | Out-Null
}
# Copy settings.json, keybindings.json, and snippets if they exist
$files = @("settings.json", "keybindings.json")
$snippetsPath = "$sourcePath\snippets"
foreach ($file in $files) {
$filePath = "$sourcePath\$file"
if (Test-Path -Path $filePath) {
Copy-Item -Path $filePath -Destination $destinationPath -Force
Write-Host "Copied $file to $destinationPath"
} else {
Write-Host "$file not found, skipping..."
}
}
# Copy the snippets folder if it exists
if (Test-Path -Path $snippetsPath) {
Copy-Item -Path $snippetsPath -Destination $destinationPath -Recurse -Force
Write-Host "Copied snippets folder to $destinationPath"
} else {
Write-Host "Snippets folder not found, skipping..."
}
Write-Host "VS Code settings backup completed in $destinationPath"
Restore code settings from current folder (optionally provide settings source folder path)
param(
[string]$sourcePath = "."
)
# Resolve full path for source
$sourcePath = Resolve-Path -Path $sourcePath
# Define VS Code settings directory
$destinationPath = "$env:APPDATA\Code\User"
# Define backup directory
$backupPath = "$sourcePath\backup"
# Ensure the destination exists
if (!(Test-Path -Path $destinationPath)) {
Write-Host "VS Code settings folder not found at $destinationPath. Exiting..."
exit 1
}
# Create a backup folder in the current location
if (!(Test-Path -Path $backupPath)) {
New-Item -ItemType Directory -Path $backupPath | Out-Null
}
# Backup existing settings
$files = @("settings.json", "keybindings.json")
$snippetsPath = "$destinationPath\snippets"
foreach ($file in $files) {
$filePath = "$destinationPath\$file"
if (Test-Path -Path $filePath) {
Copy-Item -Path $filePath -Destination $backupPath -Force
Write-Host "Backed up $file to $backupPath"
}
}
# Backup snippets if they exist
if (Test-Path -Path $snippetsPath) {
Copy-Item -Path $snippetsPath -Destination $backupPath -Recurse -Force
Write-Host "Backed up snippets to $backupPath"
}
# Restore settings from source path
foreach ($file in $files) {
$filePath = "$sourcePath\$file"
if (Test-Path -Path $filePath) {
Copy-Item -Path $filePath -Destination $destinationPath -Force
Write-Host "Restored $file from $sourcePath to $destinationPath"
} else {
Write-Host "$file not found in $sourcePath, skipping..."
}
}
# Restore snippets if they exist
$sourceSnippetsPath = "$sourcePath\snippets"
if (Test-Path -Path $sourceSnippetsPath) {
Copy-Item -Path $sourceSnippetsPath -Destination $destinationPath -Recurse -Force
Write-Host "Restored snippets from $sourcePath to $destinationPath"
}
Write-Host "VS Code settings restore completed!"