В настоящее время я работаю над сценарием PowerShell, чтобы скопировать случайный набор песен с моего NAS на SD-карту. Как дополнительное осложнение, у меня может быть не более 512 песен в папке, и, очевидно, мне нужно остановить процесс, прежде чем у меня кончится свободное место на карте.
Я написал почти полный сценарий (с уменьшенным количеством песен для целей тестирования), но мне сложно отслеживать общий размер скопированных файлов. Например, тестовый прогон с общим количеством файлов 112 МБ дает записанное значение (в $ copied_size) 1245. Я не знаю, что означает это значение, оно не кажется реалистичным значением в Гб, Гб , МБ или МБ. Я явно что-то здесь упускаю. Есть идеи?
Вот сценарий, я еще не установил ограничение на размер:
$j = 1
$i = 0
$files_per_folder = 5
$sd_card_size = 15920000000
$copied_size = 0
$my_path = '\\WDMYCLOUD\Public\Shared Music'
$random = Get-Random -Count 100 -InputObject (1..200)
For ($j=1; $j -le 5; $j++)
{
md ("F:\" + $j)
$list = Get-ChildItem -Path $my_path | ?{$_.PSIsContainer -eq $false -and $_.Extension -eq '.mp3'}
For ($i=0; $i -le $files_per_folder - 1; $i++)
{
Copy-Item -Path ($my_path + "\" + $list[$random[(($J - 1) * $files_per_folder) +$i]]) -Destination ('F:\' + $j)
$copied_size = $copied_size + ($my_path + "\" + $list[$random[(($J - 1) * $files_per_folder) +$i]]).length
}
}
Write-Host "Copied Size = " $copied_size