Managing CSV files often involves cleaning up data before processing. A common task is removing unwanted quotation marks from the contents of CSV files.
I wrote a blog post on how to remove quotes from a single CSV file using PowerShell some years ago, which I have just updated. At the end, I had the idea of adding a follow-up which is to do the same, remove quotes in a CSV file, but for multiple files.
Ideally you should be cleaning the data at source rather than performing this task. There’s many ways to do this too, I think you should use the one you find the easiest that saves most of your time.
PowerShell Script to Remove Quotes from Multiple CSV Files
Here is a script to remove quotes from all CSV files in a specified directory and save the cleaned versions in a new output directory:
# Define the input directory and output directory
$InputDirectory = "C:\Path\To\Input\CSVFiles"
$OutputDirectory = "C:\Path\To\Output\CleanedCSVFiles"
# Create the output directory if it doesn't exist
if (-not (Test-Path $OutputDirectory)) {
New-Item -ItemType Directory -Path $OutputDirectory
}
# Get all CSV files in the input directory
$CSVFiles = Get-ChildItem -Path $InputDirectory -Filter "*.csv"
foreach ($File in $CSVFiles) {
# Read the content of the current CSV file, remove quotes, and save it to a new file
$InputFilePath = $File.FullName
$OutputFilePath = Join-Path -Path $OutputDirectory -ChildPath $File.Name
# Process the file: Remove quotes and output to the new file
Import-Csv -Path $InputFilePath |
ConvertTo-Csv -NoTypeInformation |
ForEach-Object { $_ -Replace '"', "" } |
Out-File -FilePath $OutputFilePath -Force -Encoding ascii
Write-Host "Processed file: $InputFilePath -> $OutputFilePath"
}
Write-Host "All CSV files have been processed and saved in $OutputDirectory."
How it works:
– Define Directories:
The script processes files from the InputDirectory and saves cleaned versions in the OutputDirectory. Ensure you update these paths with your actual directories.
– Batch Processing: Uses Get-ChildItem to loop through all .csv files in the input directory.
– Remove Quotes: Reads each file’s content, removes quotes, and writes the cleaned data to a new file.
– Output Directory: Files are saved with their original names in the designated output directory to avoid overwriting the source files.
Recommendations:
– Monitor Performance: If you’re working with large CSV files, monitor your system resources during processing.
– Backup Original Files: Always create backups of the original files before running bulk operations.
– Validate Data: Check the output files to ensure the data integrity is maintained after quote removal.
Leave a Reply