中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-18 15:09
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:如何判断输入的变量为空的。 查看 4,223 回复 19
16 发表于 2006-12-11 07:02 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
判断变量是否为空建议采用if defined varName的格式,因为在很多场合若变量包含特殊的值可能导致if "var" == ""判断错误。
17 发表于 2006-12-12 01:59 ·  中国 浙江 杭州 电信
中级用户
★★
积分 305
发帖 85
注册 2005-05-23 00:00
UID 39004
性别 男
状态 离线
楼上的这种方法只能判断变量是否存在好像不能判断变量为空吧?我试了下:
set B=
if defined B (echo B dump) else (echo full)
结果显示full。能否详细说明一下?
18 发表于 2006-12-12 02:14 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
UID 61449
来自 北京
状态 离线
defined 是判断变量是否被定义了,跟他是什么值无关,楼上的本来测试结果就是对的
@echo off&setlocal
set b=hello
set b
if defined b (echo YES) else (echo NO)
pause
set b=
set b
if defined b (echo YES) else (echo NO)
pause
我今后在论坛的目标就是做个超级坏人!!!
19 发表于 2006-12-12 02:16 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
原来9527兄加盟肯德基了!^_^
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
20 发表于 2006-12-12 02:23 ·  中国 浙江 杭州 电信
中级用户
★★
积分 305
发帖 85
注册 2005-05-23 00:00
UID 39004
性别 男
状态 离线
Originally posted by 9527 at 2006-12-12 02:14 AM:
defined 是判断变量是否被定义了,跟他是什么值无关,楼上的本来测试结果就是对的
@echo off&setlocal
set b=hello
set b
if defined b (echo YES) else (echo NO)
p ...



自己把echo写反了。
论坛跳转: