This should do nicely:
$Source = "https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/all/all?type=daily_treasury_yield_curve&field_tdr_date_value=all&page&_format=csv"
$Destination = "C:\Users\Me\Discount_Rates\rates.csv"
$oneshot = $true
ConvertFrom-CSV (Invoke-WebRequest -Uri $source) |
ForEach-Object {
if ($oneshot) {
$oneshot = $false
$props = $_.psobject.properties.name
"QUOTE_DATE,RATE_MONTH_1,RATE_MONTH_2,RATE_MONTH_3" # header
}
ForEach ($prop in $props) {
if ($_.$prop.length -lt 1) {
$_.$prop = 0
}
}
"{0},{1},{2},{3}" -f ([datetime]::ParseExact($_.Date, "M/d/yyyy", $null)).ToShortDateString(), $_."1 Mo", $_."2 Mo", $_."3 Mo"
} | Out-File $Destination -Encoding Utf8
Note: The script doesn't use any intermediate files. Nor does it need to remove quotation marks.