Scripts/hq2cd-ps1/convert-from-file.ps1
2023-11-21 05:33:03 -04:00

50 lines
1.5 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Delete output folder if it exists
if (Test-Path -Path "Output") {
Remove-Item -Path "Output" -Recurse -Force
}
# Read each line in the file
$filePaths = Get-Content -Path $args[0]
# Save to output folder "Output"
$destination = "Output"
if (-not (Test-Path -Path $destination)) {
New-Item -Path $destination -ItemType Directory
}
# Now use ffmpeg to convert each file to 16-bit 44.1kHz
<# This is the old way, use the new way below using -Parallel
foreach ($file in $files) {
$destinationPath = $destination + "\" + $file.Name
ffmpeg -i $file.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath
}
#>
$filePaths | ForEach-Object -Parallel {
# Stupid apostrophe in the file name
# Intentional, as this is how Picard names files with apostrophes
$path = $_.Replace("'", "")
$file = Get-Item -LiteralPath $path
$destination = "Output"
$prefix = "Z:\Music-HQ\"
$oldLocation = $file.FullName
# Remove the prefix
$newLocation = $oldLocation.Substring($prefix.Length)
# Remove the name of the file for folder creation
$newLocation = $newLocation.Substring(0, $newLocation.IndexOf($file.Name))
# Create the folder if it doesn't exist
if (-not (Test-Path -Path $destination\$newLocation)) {
New-Item -Path $destination\$newLocation -ItemType Directory
}
$destinationPath = $destination + "\" + $newLocation + $file.Name
Write-Host $destinationPath
ffmpeg -i $_.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath
}