Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
и CMD, и WSH »
CMD не поддерживает арифметику 64-битных чисел, что соответствует размеру папки >2Gb
читать дальше »
Код: Выделить весь код
@echo off

set X=2147483648
echo %X%

set /A X+=1
echo %X%

pause >nul

так что вариантов два:

- округлять простым отбрасыванием младших цифр в строке (3/6/9) через SET;
- включить эту функциональность в VBS-модуль:

Код: Выделить весь код
CHCP 1251 >Nul
Echo Do While Not WScript.StdIn.AtEndOfStream::WScript.Echo Round(CreateObject("Scripting.FileSystemObject").GetFolder(WScript.StdIn.ReadLine).Size/2^^20,2)::Loop>GetDirSize.vbs
DIR /AD/B|CScript //Nologo GetDirSize.vbs
или так:
Код: Выделить весь код
Echo Do While Not WScript.StdIn.AtEndOfStream::WScript.Echo Round(CreateObject("Scripting.FileSystemObject").GetFolder(WScript.StdIn.ReadLine).Size/2^^20,2)::Loop>GetDirSize.vbs
CMD /U/C "DIR /AD/B"|CScript //U //Nologo GetDirSize.vbs
Цитата megaloman:
то, что предложено El Sanchez несколько эклектично »
увы, многие операции проще и быстрее выполнить в CMD... пока Microsoft не начнет заботиться о функциональной преемственности своих скриптовых платформ, для многих задач такое взаимодействие будет просто необходимо

Последний раз редактировалось amel27, 22-05-2010 в 09:22. Причина: + юникод

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:31, 22-05-2010 | #5