gou*_*oup 1 scripting scripting-language batch-file windows-scripting
我目前正在努力理解Windows 批处理脚本的介绍:
SET /A errno=0
SET /A ERROR_SOMECOMMAND_NOT_FOUND=2
...
... SET /A errno^|=%ERROR_SOMECOMMAND_NOT_FOUND%
Run Code Online (Sandbox Code Playgroud)
根据这个答案,抑扬^
符是一个转义字符,所以我们以errno|=%ERROR_SOMECOMMAND_NOT_FOUND%
. 但是这段代码在做什么呢?
在相应的文章中,作者指出这提供了将多个错误编号按位或组合在一起的灵活性。
好的,但是我找不到任何关于批量按位运算的文章,上面有一行...
所以,请给我一点启发。
正如相关代码上面的段落所述,这是一个bitwise OR
运算符。它用于同时设置多个二进制标志。
在代码中
SET /A ERROR_HELP_SCREEN=1
SET /A ERROR_SOMECOMMAND_NOT_FOUND=2
SET /A ERROR_OTHERCOMMAND_FAILED=4
Run Code Online (Sandbox Code Playgroud)
ERROR_HELP_SCREEN 是 0b001
ERROR_SOMECOMMAND_NOT_FOUND 是
0b010
ERROR_OTHERCOMMAND_FAILED 是 0b100
使用按位 OR 将允许您返回类似 0b101 的内容,这意味着其他命令失败并引发帮助屏幕错误。
这^
是必要的,因为|
无论上下文如何,批处理脚本都像管道一样对待,因此SET /A errno|=%ERROR_OTHERCOMMAND_FAILED%
即使它在命令行上完全有效,也会抛出语法错误。
归档时间: |
|
查看次数: |
114 次 |
最近记录: |