Помогите с пошем
Затупил на банальной задаче - отсечь повторяющиеся значения. Понимаю, что это крайне просто, но с утра плохо соображаю. Простая функция копирования, нужно впендюрить счетчик в процентах выполнения от 0 до 100. Посчитал процент выполнения, но как в условие впихнуть сравнение, что если $percent2 отличается от $percent1, то выводить изменение только один раз. Сейчас на выходе, по мере копирования получаем ...87 87 87 87 87 87 87 88 88 88 88 88 88 88 88 88 89 89 89 89 89... а надо поймать условие только при смене 1 на 2 , потом на 3 ну и так далее.
Короче тупо отсечь повторяющиеся значения переменной в цикле.
function Copy-File
{
param ([string]$from,
[string]$to)
$ffile = [io.file]::OpenRead($from)
$tofile = [io.file]::OpenWrite($to)
$in = Get-item $from
$in_Length = $in.Length
try
{
$sw = [System.Diagnostics.Stopwatch]::StartNew();
[byte[]]$buff = new-object byte[] (4096 * 1024)
[long]$total = [long]$count = 0
do
{
$percent1 = (($total / $in_Length).ToString("P")).Trim('%') -replace ',','.'
$count = $ffile.Read($buff, 0, $buff.Length)
$tofile.Write($buff, 0, $count)
$total += $count
$percent2 = (($total / $in_Length).ToString("P")).Trim('%') -replace ',','.'
[math]::Round($percent2,0)
###########################
# выводить результат только если переменная изменилась один раз
###########################
}
while ($count -gt 0)
$sw.Stop();
$sw.Reset();
}
finally
{
$ffile.Close();
$tofile.Close();
}
}
Copy-File -from 'D:\Films2\The.Island.2005.US.BDRemux.1080p.mkv' -to 'g:\The.Island.2005.US.BDRemux.1080p.mkv'
Лига программистов
1.7K поста11.6K подписчиков
Правила сообщества
- Будьте взаимовежливы, аргументируйте критику
- Приветствуются любые посты по тематике программирования
- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества