|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Добавить прогресс бар в готовый скрипт |
|
PowerShell - Добавить прогресс бар в готовый скрипт
|
Пользователь Сообщения: 122 |
Профиль | Отправить PM | Цитировать
День добрый, есть такой не сложный скрипт который ищет дубликаты файлов в папке
он работает со свичем names, если установить его то он ищет дубликаты по названию файлов (названия файлов многосоставное с разделителем - точка) если без свича то ищет просто по размеру, если у двух файлов совпадает размер или часть имени совпадает то перемещает их в директорию trash\names или trash\size так вот дело в том что скрипт довольно долго работает и я хочу прикрутить к нему не сложный прогресс бар, вроде такого, но у меня это никак не выходит $totalTimes = 10 $i = 0 for ($i=0;$i -lt $totalTimes; $i++) { $percentComplete = ($i / $totalTimes) * 100 Write-Progress -Activity 'Doing thing' -Status "Did thing $i times" -PercentComplete $percentComplete sleep 1 } А вот сам скрипт поиска дубликатов $RootFolder = "\\server\test" $WorkFolder = $RootFolder + "\sort" $TrashFolder = $RootFolder + "\trash" $LogFile = $RootFolder + "\dups.log" if (-not(Test-Path $WorkFolder)) { Write-Host "ОШИБКА $WorkFolder не существует" -ForegroundColor red; Return } if (-not(Test-Path $TrashFolder)) { Write-Host "Создаю $TrashFolder" -ForegroundColor yellow; New-Item -ItemType "directory" -Path $TrashFolder } Function WriteLog($str, $Color) { $logstr = ((Get-Date -UFormat "%Y.%m.%d %T") + " " + $str) $logstr >> $LogFile Write-Host $logstr -ForegroundColor $Color } function DuplicateCandidate([string]$DupsParam) { $Files = Get-ChildItem -Path $WorkFolder | Where {!$_.PsIsContainter -and $_.BaseName -match "\."} $arr = foreach($i in $Files) { $files | Where {$_.Name -ne $i.Name} | Where { if ($DupsParam -eq "names") { (Compare-Object $_.BaseName.Split(".") $i.BaseName.Split(".") -IncludeEqual -ExcludeDifferent).Count -ge 4 } else { $files | Where {$_.Name -ne $File.Name} | Where { $_.Length -eq $File.Length} } } } if ($DupsParam -eq "names") { Return ($arr | Select -Uniq) } else { if (Test-Path $arr.FullName) { if (-not(Test-Path ($TrashFolder + "\" + $arr.Name))) { $arr | % { WriteLog "Переместил $_ в Корзину" "green" } Move-Item -Path $arr.FullName -Destination $TrashFolder -WhatIf } } } } function GetDuplicates([string]$DupsParam) { WriteLog "---------------------------------------------------------------------------------" "yellow" WriteLog "Ищем дубликаты" "yellow" $FindDups = DuplicateCandidate $DupsParam if (($FindDups).count -eq 0 ) { WriteLog "--------------------------" "green" WriteLog "Дубликаты не найдены" "green" } else { WriteLog "--------------------------" "yellow" ($FindDups).Name | sort -Descending | % {WriteLog "$_" "yellow" } } } GetDuplicates "Names" |
|
Отправлено: 21:10, 12-06-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать scum01001, это Вы к чему всё написали?
|
Отправлено: 18:15, 25-10-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата scum01001:
|
|
Отправлено: 20:16, 26-10-2018 | #12 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Помогите прикрутить прогресс бар к скрипту | Виктор_Падий@vk | Скриптовые языки администрирования Windows | 4 | 13-11-2016 14:44 | |
Добавить прогресс бар к скрипту | support23 | AutoIt | 1 | 25-11-2012 06:53 | |
[решено] Прогресс-бар для скрипта | Tosyk | AutoIt | 10 | 23-09-2012 11:04 | |
VBS/WSH/JS - [решено] Прогресс бар для vbscript | neo21 | Скриптовые языки администрирования Windows | 2 | 27-10-2011 13:31 | |
[решено] Прогресс бар | semiono | AutoIt | 17 | 24-03-2009 23:18 |
|