CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути

Аватара пользователя
All!@nce

Re: CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути

Сообщение All!@nce »

All!@nce,


Отформатировать примерный размер в KB можно таким способом

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@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
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути

Сообщение megaloman »

В тыс.байтов c выделением разрядов

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@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
Аватара пользователя
All!@nce

Re: CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути

Сообщение All!@nce »

Супер. Спасибо большое, вы мне очень помогли!
Аватара пользователя
Fors1k

Re: CMD/BAT - [решено] Вывести 2 самых свежих файла по указаному пути

Сообщение Fors1k »

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"}}

Ответ:

Код:

Код: Выделить всё

Архив Ёлочка.rar  ⁣⁣⁣1 811 310 KB
Архив Ромашка.rar 1 533 218 KB
Ответить

Вернуться в «Скриптовые языки администрирования Windows»