35 lines
1.4 KiB
PowerShell
35 lines
1.4 KiB
PowerShell
param(
|
|
[string]$compressedFile
|
|
)
|
|
|
|
# Load .NET assembly for file handling
|
|
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
|
|
|
# Resolve absolute path of the compressed file
|
|
$absoluteCompressedFile = Resolve-Path $compressedFile
|
|
|
|
# Generate file names
|
|
$workingDir = Split-Path $absoluteCompressedFile
|
|
$uncompressedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.sql\.gz$', '_uncompressed.sql')
|
|
$modifiedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.sql\.gz$', '_modified.sql')
|
|
$recompressedFile = Join-Path $workingDir ($compressedFile -replace '^\.\\', '' -replace '\.gz$', '_modified.sql.gz')
|
|
|
|
# Decompress .sql.gz file using .NET Framework
|
|
[System.IO.Compression.ZipFile]::ExtractToDirectory($absoluteCompressedFile, $workingDir)
|
|
|
|
# Read content of uncompressed file
|
|
$content = Get-Content -Path $uncompressedFile -Raw
|
|
|
|
# Replace text
|
|
$content = $content -replace 'utf8mb4_0900_ai_ci', 'utf8mb4_general_ci'
|
|
|
|
# Write modified content to file
|
|
Set-Content -Path $modifiedFile -Value $content -Encoding UTF8
|
|
|
|
# Compress .sql file back to .sql.gz using .NET Framework
|
|
[System.IO.Compression.ZipFile]::CreateFromDirectory($workingDir, $recompressedFile)
|
|
|
|
# Cleanup: Optionally, you can remove the uncompressed and modified files if you don't need them anymore
|
|
# Remove-Item $uncompressedFile
|
|
# Remove-Item $modifiedFile
|