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

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

hp1nt0 20-12-2016 01:36 2697022

Нужен счетчик считающий в 16-ных числах
 
Здравствуйте, я в последнее время работаю с графикой и мне понадобилось
изменять значения в переменной в 16-ричной системе.
например комманды
Код:

convert -size 50x50    xc:'#00FF00FF'  color_hex_1.png
  convert -size 50x50    xc:'#00FF00C0'  color_hex_2.png
  convert -size 50x50    xc:'#00FF0090'  color_hex_3.png
  convert -size 50x50    xc:'#00FF0060'  color_hex_4.png
  convert -size 50x50    xc:'#00FF0030'  color_hex_5.png
  convert -size 50x50    xc:'#00FF0000'  color_hex_6.png

я могу заменить одной просто меняя значение переменной.
SET /A "variable=expression"
как мне сделать что бы считало нужным мне образом?
SET /A "variable=00АА00+00СС22" и так далее?

Iska 20-12-2016 02:55 2697023

hp1nt0, «в уме надо, в уме»™ ;).

В справке же по set написано:
Цитата:

Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных чисел, и 0 для восьмеричных чисел. Например, числа 0x12, и 022 обозначают десятичное число 18. Обратите внимание на запись восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной системе исчисления цифры 8 и 9 не используются.
Плюс небольшой трюк (работает с ограничениями). Т.е., в Вашем случае:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set /a iVar = 0x00aa00 + 0x00cc22
call "%comspec%" /c exit /b %iVar%
set sVar=%=exitCode%
echo [%sVar%]

endlocal
exit /b 0

P.S. Возьмите себе за правило не писать латынь:
Цитата:

Цитата hp1nt0
SET /A "variable=00АА00+00СС22" »

кириллицей.

P.P.S. Переходите на WSH/PoSH, там нет проблем с подобными извращениями, а ImageMagic доступен и как объект Automation.

hp1nt0 20-12-2016 14:30 2697154

Вот пусть железяка и считает в уме. Она умная :)
Я пока формулировал задачу придумал как составить запрос гуглу (ну как обычно)
ведь как известно все уже придумано до нас. Пока остановился на следующем варианте:
с шагом в 1
Код:

@echo off
set NUM=0 1 2 3 4 5 6 7 8 9 A B C D E F
for %%x in (%NUM%) do (
    for %%y in (%NUM%) do (
        color %%x%%y
        echo %%x%%y
                timeout 1 >nul
    )
)

с шагом в 4
Код:

@echo off
set NUM=0 1 2 3 4 5 6 7 8 9 A B C D E F
set NUM2=4 8 B F
for %%x in (%NUM%) do (
    for %%y in (%NUM2%) do (
        color %%x%%y
        echo %%x%%y
                timeout 1 >nul
    )
)

вполне кузяво.
По поводу PoSH вы абсолютно правы но условия сейчас не те углубленно заниматься штудиями.
По поводу объекта Automation, спасибо со временем и до него доберемся я пока с фонтами разбираюсь.
спасибо за помощь.


Время: 14:45.

Время: 14:45.
© OSzone.net 2001-