标题: [其他] if比较字符串是否相等的批处理哪里出错了? [打印本页]
作者: 1130342432 时间: 2011-7-29 10:55 标题: if比较字符串是否相等的批处理哪里出错了?
本帖最后由 pcl_test 于 2016-11-8 15:11 编辑
@echo off
set var= 888
if "%var%" == "888" (echo ok) else (echo no)
pause >nul
执行结果为 no ,为什么?
作者: tmplinshi 时间: 2011-7-29 11:04
var 的值为 空格888。
作者: CUer 时间: 2011-7-29 11:04
- @echo off
- set "var=888"
- if "%var%" == "888" (
- echo ok
- ) else (
- echo no
- )
- pause
复制代码
作者: 1130342432 时间: 2011-7-29 11:12
回复 3# CUer
set "var=888"中为什么要用双引号?
作者: cjiabing 时间: 2011-7-29 11:14
SET是很严格在,通常有人会忽略空格导致的错误!~
“set var= 888”
作者: CUer 时间: 2011-7-29 11:14
回复 4# 1130342432
为了防止初学者乱加空格
作者: Hello123World 时间: 2011-7-31 12:37
set var= 888
888前面有个空格,将空格消除即可。
也可以这样:- @echo off
- set var= 888
- if %var%==888 (echo ok) else (echo no)
- pause >nul
复制代码
加引号,那么就是比较字符串,而空格也是字符串的一种,一个比另一个多出一个空格,那么两者必然不相等。
不加引号,就是比较数字,加不加空格,空格都会不比较,因为空格不是数字。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |