|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути |
|
CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути
|
![]() Новый участник Сообщения: 34 |
Здравствуйте. Знатоки подскажите пожалуйста как решить такую задачу. Есть папка в которую каждый день падает по одному архиву. Нужно вывести имена двух самых свежих архивов (по дате создания или изменения), а также их размеры (желательно в КБ).
Пробовал вот таким образом но почему то не работает. Выводит все файлы... Спасибо! |
|
Отправлено: 14:26, 07-07-2020 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать All!@nce,
Отформатировать примерный размер в KB можно таким способом
@echo off chcp 1251 >nul setlocal enabledelayedexpansion pushd "\\comp1\arh" set num=0 for /f "delims=" %%i in ('dir /b/a-d/o-d/tw') do ( call :FormatSize %%~zi echo Файл %%i изменён %%~ti размер ~!_formattedSize! KB set /a num+=1 if !num!==2 goto NEXT ) :NEXT popd pause endlocal exit /b :FormatSize setlocal set in=%~1 set "formattedSize=%in:~-15,-12% %in:~-12,-9% %in:~-9,-6% %in:~-6,-3%" for /f "tokens=*" %%_ in ("%formattedSize%") do set formattedSize=%%_ endlocal & set _formattedSize=%formattedSize% exit /b 0 |
Отправлено: 17:48, 07-07-2020 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать В тыс.байтов c выделением разрядов
@Echo Off cls >nul Chcp 1251 Set "BoxIn=\\Server\Test1\Мой контент\Музыка\Шевчук" Set "Mask=*.*" Set /A N=4 Set /A i=%N% FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:-D /T:W`) DO ( Call :OutPut "%BoxIn%\%%f" ||GoTo :End) ) :End pause Exit /B :OutPut Set "Size= %~z1" Set "Size=%Size:~0,-3%" Set "OutSize=" :Begin Set "S=%Size:~-3%" If "%S%"==" " GoTo :Continue Set "Size=%Size:~0,-3%" Set "OutSize=%S: =%'%OutSize%" GoTo :Begin :Continue If "%OutSize%"=="" Set "OutSize=00" Echo Файл %~nx1 изменён %~t1 размер %OutSize:~0,-1%тыс.б Set /A i-=1 If %i%==0 Exit /B 1 Exit /B 0 |
------- Последний раз редактировалось megaloman, 07-07-2020 в 18:35. Отправлено: 18:02, 07-07-2020 | #12 |
![]() Новый участник Сообщения: 34
|
Профиль | Сайт | Отправить PM | Цитировать Супер. Спасибо большое, вы мне очень помогли!
|
Отправлено: 18:22, 07-07-2020 | #13 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать All!@nce, вот одна команда для вашей задачи(powershell), и выводите себе результат хоть в ТБ, хоть в миллиардах байт.
param( $path = "C:\Архивы", $unit = 'KB' )cls gci $path -file|sort LastWriteTime -des|select name, length -first 2|ft -a -h name, @{Expression={"{0:### ### ###.00}" -f($_.length/"1$unit")+" $unit"}} |
Отправлено: 19:25, 07-07-2020 | #14 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Удалить 2 самых молодых файла по горячей клавише. | adianisa | Скриптовые языки администрирования Windows | 1 | 24-06-2016 23:19 | |
MySQL - [решено] вывести имя файла | LAKERS824 | Программирование и базы данных | 1 | 12-07-2012 09:11 | |
[решено] Копирование файла по заданному пути для разных типов ОС | foma555 | AutoIt | 9 | 30-06-2012 11:54 | |
CMD/BAT - [решено] Как завершить процесс по пути файла процесса? | navigator19 | Скриптовые языки администрирования Windows | 1 | 21-07-2010 11:54 | |
C/C++ - Создание файла, по указанному пути | S1stem | Программирование и базы данных | 1 | 01-08-2008 04:05 |
|