Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Обработка чисел с лидирующими нулями в командном процессоре cmd.exe 04.10.05 20:19 Число просмотров: 2105
Publisher: Den <Denis> Статус: The Elderman
|
Обработка чисел с лидирующими нулями в командном процессоре cmd.exe Den http://www.bugtraq.ru/cgi-bin/iforum.mcgi?type=si&u=5269
Случайно обнаружился интересный глюк в cmd.exe на MS Windows 2000 Server, проявляющийся при попытке произвести арифметическую операцию с двузначными и более числами, предваренными лидирующими нолями, с последующим присвоением переменной окружения.
Попробуйте:
set /a test=0054-1
set /a test=0111
set /a test=4*0110
С подобным глюком можно легко столкнуться при конвертировании каких-либо данных в числовой формат с помещением результата в переменную окружения для последующей обработки в скрипте.
Причина - правила интерпретации числовых констант, которые могут быть либо десятичными (17), либо шестнадцатиричными (0x11), либо восьмиричными (021).
WORKAROUND:
Глюка можно обойти, если использовать следующее выражение для отбрасывания лидирующих нолей:
for /F "tokens=* delims=0" %i in ("0110") do set /a test=4*%i
Полный текст
|
- Обработка чисел с лидирующими нулями в командном п... - Den 04.10.05 20:19 [2105]
|
|
|