Scripts/hq2cd-ps1/convert-from-file.ps1

38 lines
1.2 KiB
PowerShell
Raw Normal View History

2023-11-21 03:31:57 -04:00
# Read each line in the file
$filePaths = Get-Content -Path $args[0]
$files = @()
foreach ($filePath in $filePaths) {
2023-11-21 04:56:52 -04:00
$files += Get-Item -Path "$($filePath)" -Force
2023-11-21 03:31:57 -04:00
}
# 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
}
#>
2023-11-21 04:56:52 -04:00
$prefix = "Z:\Music-HQ\"
2023-11-21 03:31:57 -04:00
$files | ForEach-Object -Parallel {
2023-11-21 04:56:52 -04:00
$oldLocation = $_.FullName
# Remove the prefix
$newLocation = $oldLocation.Substring($prefix.Length)
# Remove the name of the file for folder creation
$newLocation = $newLocation.Substring(0, $newLocation.IndexOf($_.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 + $_.Name
Write-Host $destinationPath
# ffmpeg -i $_.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath
2023-11-21 03:31:57 -04:00
}