中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 23:20
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » set /p 如何设置空值?(已解决)
可打印版本  1,534 / 9
第1楼 applecy 发表于 2007-05-25 21:59
初级用户 发帖 78 积分 168
set /p 如何设置空值?(已解决)
RT:

set /p aa=

请问如何把%aa%的值设置为空?

[ Last edited by applecy on 2007-5-25 at 10:33 PM ]
第2楼 lxmxn 发表于 2007-05-25 22:18
版主 发帖 4,938 积分 11,386
直接回车就行了。
第3楼 applecy 发表于 2007-05-25 22:25
初级用户 发帖 78 积分 168
@echo off
:st
echo 请选择
set /p aa=
if %aa%== goto st
if %aa%==n goto and
exit
:and
exit

我要做到的效果是如果输入"n"就结束,直接回车就跳转到:st.
请问具体要怎么修改?
第4楼 lxmxn 发表于 2007-05-25 22:27
版主 发帖 4,938 积分 11,386
第5楼 applecy 发表于 2007-05-25 22:32
初级用户 发帖 78 积分 168
谢谢lxmxn兄弟帮了大忙``

顺便问下""跟[]有什么区别吗?
第6楼 bjsh 发表于 2007-05-25 22:59
银牌会员 发帖 621 积分 2,000
我建议
if == goto st (这一句等同于 if "%a%"=="" goto st)
这一句写成
if not defined aa goto st
否则的话极易让人理解为直接回车的话%aa%是空;
实际上直接回车是指不定义aa

[ Last edited by bjsh on 2007-5-25 at 11:02 PM ]
第7楼 qzwqzw 发表于 2007-05-27 17:30
银牌会员 发帖 636 积分 2,343
我感觉变量未定义和变量为空值其实是同一个概念

比如 set var=就可以理解定义变量为空或者取消变量定义

至于空变量是否在环境表中保存那就是见仁见智了

反正又没有官方文档加以规范

估计微软自己都不想在这上面多绕
第8楼 slore 发表于 2007-05-27 18:25
铂金会员 发帖 2,478 积分 5,212
c:\>set var=k

c:\>set var
var=k

c:\>set var=

c:\>set var
环境变量 var 没有定义

c:\>
第9楼 tophu0041463 发表于 2010-01-07 23:23
初级用户 发帖 24 积分 42 来自 深圳
做记号,学习了
第10楼 jarry0932 发表于 2010-01-10 19:33
初级用户 发帖 122 积分 128
原来如此啊,那以后在写P的时候可以简化代码啦,又长知识了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023