Создание файла отчета о размерах каталогов

Обсуждение программ nnCron и nnCron LITE

Создание файла отчета о размерах каталогов

Postby D.Ilyin » Wed, 11 Aug 2004, 11:09

Собственно не получается снять значение со стека числа двойной длины для вывода информации в файл.
Code: Select all
#( DIR_SIZE
NoActive
Action:
      RECURSIVE
      SKIPERRORS
      FOR-FILES: "c:\temp\*"
      IS-DIR?
      IF
         DIR-SIZE: "c:\temp"
         FILE-APPEND: "c:\report.txt" "Размер каталога: %FOUND-FULLPATH ONLYDIR% - %КАК_СЮДА ВЫВЕСТИ_РАЗМЕР%%crlf%"
      THEN
      ;FOR-FILES
)#


Или это возможно только через введение дополнительной переменной?
D.Ilyin
 
Posts: 41
Joined: Mon, 02 Aug 2004, 13:07

Postby VK » Wed, 11 Aug 2004, 12:07

CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby D.Ilyin » Wed, 11 Aug 2004, 12:52

нашел раньше.... :) чем Вы ответили... т.е. без ввода дополнительной переменной ни как :(.
А можно ли как нибудь привести это к виду 4 234 244 Кб, а не 4234244355 байт?
D.Ilyin
 
Posts: 41
Joined: Mon, 02 Aug 2004, 13:07

Postby Valery_Kondakoff » Wed, 11 Aug 2004, 18:54

Делить на 1024 умеешь?
CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Postby D.Ilyin » Wed, 11 Aug 2004, 19:26

а пробелы как?
D.Ilyin
 
Posts: 41
Joined: Mon, 02 Aug 2004, 13:07

Postby Valery_Kondakoff » Wed, 11 Aug 2004, 20:03

CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

пробелы и деление....

Postby D.Ilyin » Thu, 12 Aug 2004, 11:32

С пробелами получилось, а вот деления как я понял не происходит....
Code: Select all
   TEST 2@ 1024 /
   TEST 2!
   ........ %FOUND-FULLPATH% - %TEST 2@ <# # # # 32 HOLD # # # 32 HOLD #S #>%%crlf%"

потому что я что то не так написал?
D.Ilyin
 
Posts: 41
Joined: Mon, 02 Aug 2004, 13:07

Postby VK » Thu, 12 Aug 2004, 12:29

потому что ты делишь число двойной длины на число одинарной длины.

Думаю, надо как-то так:
Code: Select all
TEST 2@ 1024
\ делим
UM/MOD SWAP DROP
\ конвертируем одинарное в двойное
S>D
   TEST 2!
   ........ %FOUND-FULLPATH% - %TEST 2@ <# # # # 32 HOLD # # # 32 HOLD #S #>%%crlf%"
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby D.Ilyin » Thu, 12 Aug 2004, 14:22

Здорово! :) Дествительно заработало.... БОЛЬШОЕ СПАСИБО! Уже даже не знаю как выразить благодарность :oops:
Может кому пригодится полученный совместными усилиями скрипт :).

Оны выводит в текстовый файл онформацию о каталогах находящихся в каталоге c:\Temp и их размерах включая вложенные подкаталоги.
Code: Select all
#( DIR_SIZE
NoActive
2VARIABLE DIRECTORY_SIZE
Action:
      SKIPERRORS
      FOR-FILES: "c:\Temp\*"
         IS-DIR?
         IF
            RECURSIVE DIR-SIZE: "%FOUND-FULLPATH%" DIRECTORY_SIZE 2!
               1024000000. DIRECTORY_SIZE 2@ D<
               IF
                  DIRECTORY_SIZE 2@ 1024000               \ делим
                  UM/MOD SWAP DROP             \ конвертируем одинарное в двойное
                  S>D
                  DIRECTORY_SIZE 2!
                  FILE-APPEND: "c:\report.txt" "Размер каталога: %FOUND-FULLPATH% - %DIRECTORY_SIZE 2@ <# # # # 44 HOLD #S #>% Гб.%crlf%"
               ELSE
                  DIRECTORY_SIZE 2@ 1024                   \ делим
                  UM/MOD SWAP DROP             \ конвертируем одинарное в двойное
                  S>D
                  DIRECTORY_SIZE 2!
                  FILE-APPEND: "c:\report.txt" "Размер каталога: %FOUND-FULLPATH% - %DIRECTORY_SIZE 2@ <# # # # 44 HOLD #S #>% Мб.%crlf%"
               THEN
         THEN
      ;FOR-FILES
)#


Т.о. получим текстовый файл report.txt в корневой директории диска C:\>
Code: Select all
Размер каталога: c:\Temp\Funny_Pictures - 4,154 Мб.
Размер каталога: c:\Temp\Funny_waves - 0,820 Мб.
Размер каталога: c:\Temp\Links - 0,086 Мб.
Размер каталога: c:\Temp\PhonePictures - 0,304 Мб.
Размер каталога: c:\Temp\SEND_Mail_from_command_line - 0,002 Мб.
Размер каталога: c:\Temp\Video_Pricols - 13,402 Мб.
Размер каталога: c:\Temp\Wallpapers - 197,933 Мб.
Размер каталога: c:\Temp\Waves - 18,203 Мб.


Для вывода более полной информации, т.е. еще подпапки основных папок каталога c:\Temp, необходимо добавить слово RECURSIVE перед SKIPERRORS.
D.Ilyin
 
Posts: 41
Joined: Mon, 02 Aug 2004, 13:07


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 3 guests