PowerShell: snippet per cambiare il delimitatore di un file CSV

| |

Excel è una strana bestia, è quel programma su cui la tipica azienda italiana (ma non solo) fa affidamento, e senza il quale difficilmente vivrebbe (spesso senza conoscere le alternative che il mercato mette a disposizione). Niente male per un prodotto nato dalle ceneri di Multiplan e pubblicato in esclusiva per Macintosh, vero? Ma non andiamo poi troppo off-topic. Quello di oggi è il più classico tra gli snippet: un pezzo di codice che può tornarti utile per eseguire un’operazione ripetitiva, noiosa, necessaria però quando quotidianamente hai a che fare con file CSV e necessità poi di lavorarli su Excel.

Il delimitatore dei file CSV è la virgola (da sigla stessa: Comma Separated Value)

function Update-CSVDelimiter {
param (
[string]$FilePath,
[string]$Encoding = "ISO-8859-1", # Default encoding, can be changed
[switch]$ToComma, # Switch to convert ";" to ","
[switch]$ToSemicolon # Switch to convert "," to ";"
)
# Check if the specified file exists
if (Test-Path $FilePath) {
try {
# Read the file content with the specified encoding
$content = Get-Content -Path $FilePath -Encoding $Encoding
# Determine the direction of the conversion
if ($ToComma) {
# Convert ";" to ","
$newContent = $content -replace ';', ','
} elseif ($ToSemicolon) {
# Convert "," to ";"
$newContent = $content -replace ',', ';'
} else {
# Default behavior: Convert "," to ";"
$newContent = $content -replace ',', ';'
}
# Write the modified content back to the file with the same encoding
$newContent | Out-File -FilePath $FilePath -Encoding $Encoding -Force
Write-Output "Conversion successfully completed."
} catch {
# Handle any errors that occur during the process
Write-Output "An error occurred: $_"
}
} else {
# Inform the user if the file does not exist
Write-Output "The specified file does not exist."
}
}

In caso di dubbi o suggerimenti per migliorare quanto fatto, come sempre, hai l’area commenti a tua totale disposizione :-)

#KeepItSimple

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

Pillole

Articoli rapidi e pratici. fai clic qui.

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments