批处理文件中逻辑位移转义字符失效致异常文件生成问题
批处理逻辑右移操作的问题解决
问题原因
你的代码里用^>>转义是错误的——只转义了第一个>,第二个>还是被CMD识别为输出重定向符号,导致set /a的执行结果被写入到名为8的文件中,移位操作根本没生效。
正确写法
有两种可行的修正方式:
方式1:用双引号包裹算术表达式
把整个移位表达式放在双引号里,让CMD把里面的>>当成算术操作符而非重定向:
@echo off set "newvalue=26000" set /a test="%newvalue% >> 8" echo %test%
方式2:对每个>单独转义
给两个>都加上脱字符^转义,避免被解析为重定向:
@echo off set "newvalue=26000" set /a test=%newvalue% ^>^> 8 echo %test%
两种方式运行后都会输出101,符合预期。
内容的提问来源于stack exchange,提问作者user3742046
相关产品推荐
相关产品推荐

