2015-07-02 2 views
2

Не могли бы вы посоветовать, что использовать «&» или «^» в SET команда означает (я не нашел объяснений с помощью Google).амперсанд, используемый в команде SET/A в сценарии загрузки Windows

Например, после Windows, партия блока кода

SET V_COMMAND=3 
SET /A V_FLAG="%V_COMMAND%&2" 
echo VFlag is: %V_FLAG% 

производит:

VFlag is: 2 

Но у меня нет никакого мнения о том, что команда выше делает.

Также есть еще один случай с "^":

SET V_COMMAND=3 
SET /A V_FLAG="%V_COMMAND%^3" 
echo VFlag is: %V_FLAG% 

Для этого случая выхода является:

VFlag is: 0 
+1

Вы посмотрели документацию для команды SET? Документацию можно получить, введя 'set /?' В командной строке. – dbenham

ответ

1

Те битовые операторы - & является побитовое И, а ^ является побитовое XOR. Эти побитовые операторы доступны только с SET /A.

2

Поскольку вы используете set /a, указанные символы битовые операторы:

& = bitwise AND = 1 if both bits are 1 
^ = bitwise XOR = 1 if only one of the two bits is 1 

Так что если a является 10 (1010 в двоичной системе) и b является 13 (1101 в двоичной системе)

  1010    1010 
     1101    1101 
     ----    ---- 
     1000 = a & b  0111 = a^b 

Или в вашем случае с 3 dec = 11 bin и 2 dec = 10 bin

  11    11 
      10    11 
      --    -- 
      10 = 3&2 = 2  00 = 3^3 = 0