![]() |
Неверное число. Числа ограничены 32 битами точности.
Вложений: 1
Даю батнику команду:
Код:
set /a TotalSelectSize=%HomeMB%+%WinXPMB%+%Win7MB%+%LiveCDMB%+%HirenMB%+%RecoverMB%+%DriverMB%+%WPIMB%+%SoftMB% Код:
set /a TotalSelectSize=24006839+597176320+4032823296+601608192+493252608+1663288361+4679008256+2420684800+29275962 Пробовал делать так: Код:
set /a WinXPMB=%WinXPMB%/1000000 Код:
set /a TotalSelectSize=24+597+-262+601+493+1663+4679008256+-1874+29 |
Цитата:
|
У меня задача посчитать размер определенных папок + файлов и вывести значения посчитанных папок и файлов в переменные для дальнейшей работы.
|
|
sLiDeR-X, ну, выведете Вы эти значения в переменные. А дальше-то что? Не думаете ли Вы, что проблема только в «set /a», и стоит её как-нибудь решить, то «дальше мы уж как-нибудь разберёмся»?! Вот Вам простой пример:
Код:
@echo off Цитата:
|
Iska, это все понятно...
Для себя в этом же скрипте делаю так: Код:
set "TotalSelectSize_=000000000000000000%TotalSelectSize%"& set "TotalSelectSize_=!TotalSelectSize_:~-18!" Вывернулся вот таким способом: Код:
for /f "skip=4 tokens=1-3" %%a IN ('dir "___Main\" /-C /S /A:-D') do ( Код:
set /a TotalSelectSize=24+597+4032+601+493+1663+4679+2420+29 |
Набросал вот. Можно оперировать очень большими числами, а также дробными. В коде функция и наглядный пример использования
ps. Вообще, конечно, BAT это ЖЕСТЬ и писать на нем могут только упоротые маньяки. Типичная проблема - поиск неправильной закорючки и попытка понять, как надо расставить закорючки, чтобы оно не ругалось. Результат выполнения if %PercentFree% LSS %MinPercentFree% если числа содержат запятую меня просто убил - выполняются обе ветки IF, пришлось менять на if %PercentFree:,=% LSS %MinPercentFree:,=% ( Код:
@echo off |
Время: 17:11. |
Время: 17:11.
© OSzone.net 2001-