标题: [已解决]批处理if语句中为何不显示变量计算后的结果? [打印本页]
作者: 风之语故乡 时间: 2011-8-12 11:01 标题: [已解决]批处理if语句中为何不显示变量计算后的结果?
- @echo off
- set "a=3"
- set "b=60"
- set "c=30"
-
- echo.请输入G或者其他
- set /p "input="
-
- if "%input%"=="G" (
- set /a "a=%b%-%c%"
- echo.%a%
- )
- echo %a%
- pause>nul
复制代码
我不知道为什么if中的变量a不显示计算后的的结果啊。
即便是启用变量延迟或者禁用变量延迟也是一样的结果
作者: CrLf 时间: 2011-8-12 11:17
启用了变量延迟,% 号的功能并没有得到拓展,要使用变量延迟的变量要把 % 换成 !,也就是把 %a% 换成 !a!。
另外,set /a 具备解释变量的功能,所以此处的 set /a "a=%b%-%c%" 可以简写成 set /a "a=b-c"
作者: 风之语故乡 时间: 2011-8-12 11:24
回复 2# CrLf
谢谢了,晕死,怎么没想到,真是当局者迷死。。。。。。
作者: 545810831 时间: 2011-8-12 11:25
估计在set /p "input=" 输入时忘记"G"是大写,把小写"g" 输入进去,所以得不到计算结果
作者: Hello123World 时间: 2011-8-12 15:29
- @echo off
- set "a=3"
- set "b=60"
- set "c=30"
-
- echo.请输入G或者其他
- set /p "input="
-
- if /i "%input%"=="G" (
- set /a "a=b-c"
- )
- echo %a%
- pause>nul
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |