FastDefrag - быстрая дефрагментация и оптимизация на основе cdefrag.exe- версия для коммандной строки Auslogics Disk Defrag Ultimate Поддерживаются SSD и HDD. Ссылка на FastDefragScreenshots:
Последний раз редактировалось: dimo70 (2022-06-21 13:04), всего редактировалось 51 раз(а)
_________________ Подпись отключена за нарушение правил форума
Обновление до версии 2. Добавлена возможность выбора проверки дисков в самом начале. (Случается с второго раза находит ошибки на C: хотя их нет). Можно пропустить. Мелкие исправления в скрипте.
_________________ Подпись отключена за нарушение правил форума
WindR, cdefrag.exe есть только в платного Auslogics Disk Defrag Pro. Какая альтернатива предлагаете, стандартный подключить на месте него? В принципе возможно. Как то не вериться, что IOBit Smart Defrag лучше всех по тех результатов. Но обещаю подумать, что можно изменить. КМК Auslogics Disk Defrag лучше. После него система становиться быстрее, а и быстро проходит. Если сдесь глянуть, картина совсем другая.
_________________ Подпись отключена за нарушение правил форума
WindR, читал хорошие вещи про MyDefrag. Скрипты не знаю, но рискну подключить тоже. Идея понравилась. Нужно протестировать Тут еще один очень сериозный вопрос стоит. Нужно перед запуска дефрагментации проверить что за диск. Если SSD, то запустить скрипт для SSD, если HDD, запустить например automaticMonthly.MyD. Вот тут я не знаю как сделать, а ето очень существенно, так как сейчас уже половина дисков SSD, а они никак не любят дефрагментацию. Если кто подскажет буду весьма благодарен.
_________________ Подпись отключена за нарушение правил форума
# Перепроверяем более точно все диски, определённые ранее как HDD, с помощью утилиты Smartctl.exe # Диски могут не определиться как SSD, так как с помощью PS это сделать гарантированно не возможно. $TableDrives.Values.Where({ if ( $_.MediaType -like '*HDD*' ) { # Для всех возможных типов подключения. foreach ( $Type in 'sat,auto','sat','auto','ata','scsi','nvme' ) { # Если диск определился как SSD. if (( & $Smartctl -d $Type -i $_.DriveLetter ) -like '*Solid State Device*' ) { # Переименовываем его МедиаТип HDD в МедиаТип SSD, и прерываем дальнейшее определение этого диска. if ( $_.MediaType -eq 'VirtualHDD' ) { $_.MediaType = 'VirtualSSD' } else { $_.MediaType = 'SSD' } break } } } })
:: Сценарий получения информации по жестким дискам в системе, и определения SSD дисков :DiskInfo set "DiskLOG=%temp%\Diskpart.log" set "DiskLOG2=%temp%\Diskpart2.log" set "WmicLog=%temp%\Wmic.log" set "HDDLog=%temp%\TempHDD.log" set "SSDLog=%temp%\TempSSD.log" del "%WmicLog%" 2>nul & del "%HDDLog%" 2>nul & del "%SSDLog%" 2>nul & del "%DiskLOG2%" 2>nul echo. list volume | diskpart | findstr /i " Partition Simple " | findstr /i " GB MB " >%DiskLOG% chcp 866 >nul for /f "tokens=1*" %%I in (' type "%DiskLOG%" ') do ( set "LogLine=%%I %%J" set "LogLine=!LogLine:* NTFS =!" & set "LogLine=!LogLine:* FAT32 =!" & set "LogLine=!LogLine:* Simple =!" & set "LogLine=!LogLine:* Partition =!" for /f "tokens=1,2" %%K in ('echo.!LogLine!^| findstr /i " MB GB "') do ( set "SizeMB=1" if "%%L"=="MB" ( set "SizeMB=%%K" & set "SizeMB=!SizeMB:~3!" ) set "ExcludeLine=~~~~~~~" if "!SizeMB!"=="" set "ExcludeLine=%%K %%L" for /f "tokens=3*" %%O in (' echo.%%I %%J ^| find /i /v " !ExcludeLine! " ^| find /i /v " Hidden " ') do ( echo.%%O %%P>>"%DiskLOG2%" ) ) ) for /f "tokens=1,2*" %%I in (' type "%DiskLOG2%" ') do ( set "DiskLetter=%%I" set "GBDisk=%%J %%K" set "GBDisk=!GBDisk:* Simple =!" & set "GBDisk=!GBDisk:* Partition =!" set "DiskType=" & set "DiskType2=" 2>nul wmic logicaldisk !DiskLetter!: get FileSystem,Name,VolumeName | find /i "!DiskLetter!:">>%WmicLog% type %WmicLog% | find /i "!DiskLetter!:" >nul && ( set "DiskType={0e}HDD{#}"& set "DiskType2=HDD" ) for %%A in (sat2,sat,auto,ata,scsi,nvme) do ( set "D=%%A" if "%%A"=="sat2" set "D=sat,auto" %Smartctl% -d !D! -i !DiskLetter!: |>nul find /i "Solid State Device" && (set "DiskType={0a}SSD{#}"& set "DiskType2=SSD") ) if "!DiskType2!"=="SSD" (<nul set /p Drives=!DiskLetter!: >>%SSDLog%) if "!DiskType2!"=="HDD" (<nul set /p Drives=!DiskLetter!: >>%HDDLog%) for /f "tokens=1,3*" %%I in (' type "%WmicLog%" ^| find /i "!DiskLetter!:" ') do ( set "DiskName=%%J %%K" set "DiskFS=%%I" for /f "tokens=1,2" %%L in ('echo.!GBDisk!') do ( set "Tab= " if %%L GTR 9 set "Tab= " & if %%L GTR 99 set "Tab= " & if %%L GTR 999 set "Tab= " set "DiskSize=%%L %%M!Tab!" if "!DiskFS!"=="NTFS" set "DiskFS=NTFS " %ch% !DiskType! {08}Disk ^> {0f}!DiskLetter!: {08}^|{#} !DiskSize! {08}^|{#} !DiskFS! {08}^|{#} !DiskName! {\n #} ) ) ) chcp 65001 >nul for /f "tokens=*" %%I in (' 2^>nul type %SSDLog% ') do set "SSDdisk=%%I" for /f "tokens=*" %%I in (' 2^>nul type %HDDLog% ') do set "HDDdisk=%%I" if "%SSDdisk%"=="" ( set "TrimDisks=У вас нет {0a}SSD{#} дисков" ) else ( set "TrimDisks={0d}Выполнить{#} TRIM для {0a}SSD{#} дисков: {0a}%SSDdisk%{#}" ) if "%HDDdisk%"=="" ( set "DfrgDisks=У вас нет {0e}HDD{#} дисков" ) else ( set "DfrgDisks={0d}Выполнить{#} дефрагментацию {0e}HDD{#} дисков: {0e}%HDDdisk%{#}" ) del "%DiskLOG%" 2>nul & del "%DiskLOG2%" 2>nul & del "%WmicLog%" 2>nul & del "%HDDLog%" 2>nul & del "%SSDLog%" 2>nul exit /b
Обновление до версии 3. Изменения: Добавлена автоматическая проверка наличия SSD. Если есть дефрагментация и оптимизация диска пропускается. Добавлена очистка с Dism Мелкие исправления скрипта.
_________________ Подпись отключена за нарушение правил форума
dimo70, если правильно увидел Вы проверку на принадлежность к SSD выполняете через PowerShell? Значит ли это что "ClDefrag полезность" будет использоваться только в "живой операционной системе" или предполагается использование и в WinPe? Если и в последнем, то не увидел как Вы добиваетесь гарантированного выполнения запроса?
WindR писал(а):
73180Вот выдержка из Set-Drives-Icons.ps1
WindR, а прямую ссылку на скрипт можно или только через профиль уважаемого westlife? dimo70, случайно, но почитывая в свободные минуты о SSD тоже обратил внимание на
WindR писал(а):
73180с помощью утилиты Smartctl.exe
присмотритесь к ней, посмотрите что выдает консольная утилитка в ком строке smartctl -i sdX для различных SSD и особенно для гибридных НDD (для них может быть ошибка в определении) Вы, по видимому, часто пользуетесь этим железом, обратите внимание на выхлоп "smartctl -i sdа" значение "Rotation Rate" и возможно и "Device Model" . Может выхлоп "smartctl -i sdа" будет правильнее использовать и на усмотрение пользователя уже принимать решение о продолжении действий. Сильно не искал, взял консольку smartctl из HDD Guardian.
qwea2005, делал для себя, только для живой системе. По второму вопросу, присмотрюсь, но я не совсем уж разбираюсь еще во всем. Идея сделать так чтоб работало и в PE нравиться, но не знаю справлюсь ли я. Тут нужны сериозные знания и опыта в PE, которые увы у меня пока нет. Но постараться обещаю.
_________________ Подпись отключена за нарушение правил форума
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы