Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Список файлов + размер (http://forum.oszone.net/showthread.php?t=331553)

Voidstranger 30-11-2017 15:19 2781224

Список файлов + размер
 
Доброго времени суток. Необходимо сделать список файлов с определённым расширением в директории, а также размеры файлов с выводом всего этого дела в текстовый файл. То есть вида:

564 1.log
36 2.log
89 3.log

на данный момент имею такое:
forfiles /P D:\ /M *.log /C "cmd /Q /C for %%1 in (@fsize@file) do echo %%~1">D:\2.log

вот только проблема - выводит с кавычками в виде:

148"1.log"
0"2.log"

Как избавиться от кавычек и между размером и именем файла поставить пробел?

Iska 30-11-2017 15:45 2781230

Voidstranger, Вас не смущает, что в именах файлов могут тоже оказаться пробелы?
Код:

for %i in ("d:\*.log") do @echo %~zi %~nxi
Для использования внутри пакетного файла удвойте % и уберите @. Скрытые и системные файлы не учитываются (если сие для Вас существенно — пишите, поменяем код на разбор dir).

P.S. Вывод в файл с тем же расширением и в тот же каталог, что используется при подсчёте, не есть хорошо и правильно.

Voidstranger 30-11-2017 15:48 2781233

Спасибо большое, всё получилось.

И если можно ещё один вопрос. Можно ли как-то из результата команды dir для ftp.exe убрать даты? Пример, dir выводит в тектовый файл список файлов на фтп в виде:

2177416428 Nov 26 22:10 20171127.7z
2182467820 Nov 27 22:08 20171128.7z
2187403500 Nov 28 22:08 20171129.7z
2189732588 Nov 29 22:07 20171130.7z

Нужно удалить в этом текстовом файле даты:

2177416428 20171127.7z
2182467820 20171128.7z
2187403500 20171129.7z
2189732588 20171130.7z

То есть условие что-то вроде "текст от первого до последнего пробела в строке заменить на пробел".

megaloman 30-11-2017 16:12 2781243

Цитата:

Цитата Voidstranger
Необходимо сделать список файлов с определённым расширением в директории, а также размеры файлов »

Чтобы список читался лучше, размеры файлов лучше выровнять по ширине
Код:

@Echo Off
Set "FileIn=Z:\Box_In\*.log"
Set "Log=%~dpnx0.txt"

>"%Log%" (FOR %%f IN ("%FileIn%") DO Call :Out "%%f"  "            %%~zf")
GoTo :Eof                                           

:Out
        Set "@Out=%~2"
        Call Set "@Out=%%@Out:~-12%%"
        Echo %@Out%  %~1
GoTo :Eof


Iska 30-11-2017 16:20 2781248

Код:

>"Result.txt" (for /f "usebackq tokens=1,4*" %i in ("тектовый файл.txt") do @echo %i %k)

Elven 30-11-2017 16:21 2781249

Код:

for /f "tokens=1-2 delims=;" %%A in ('forfiles /m d:\*.log /c "cmd /c echo @file;@fsize"') do echo %%B %%~A
Что-то я припозднился с решением, тут уже и так накидали.

Voidstranger 30-11-2017 16:27 2781251

Ещё раз спасибо всем отписавшимся!


Время: 12:47.

Время: 12:47.
© OSzone.net 2001-