Board logo

标题: set /p 如何设置空值?(已解决) [打印本页]

作者: applecy     时间: 2007-5-25 21:59    标题: set /p 如何设置空值?(已解决)

RT:

set /p aa=

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

[ Last edited by applecy on 2007-5-25 at 10:33 PM ]
作者: lxmxn     时间: 2007-5-25 22:18
直接回车就行了。
作者: applecy     时间: 2007-5-25 22:25
@echo off
:st
echo 请选择
set /p aa=
if %aa%== goto st
if %aa%==n goto and
exit
:and
exit

我要做到的效果是如果输入"n"就结束,直接回车就跳转到:st.
请问具体要怎么修改?
作者: lxmxn     时间: 2007-5-25 22:27

@echo off
:st
echo 请选择
set /p aa=
if [%aa%]==[] goto st
if /i [%aa%]==[n] goto and
exit
:and
exit

作者: applecy     时间: 2007-5-25 22:32
谢谢lxmxn兄弟帮了大忙``

顺便问下""跟[]有什么区别吗?
作者: bjsh     时间: 2007-5-25 22:59
我建议
if [%aa%]==[] 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 ]
作者: qzwqzw     时间: 2007-5-27 17:30
我感觉变量未定义和变量为空值其实是同一个概念

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

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

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

估计微软自己都不想在这上面多绕
作者: slore     时间: 2007-5-27 18:25
c:\>set var=k

c:\>set var
var=k

c:\>set var=

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

c:\>
作者: tophu0041463     时间: 2010-1-7 23:23
做记号,学习了
作者: jarry0932     时间: 2010-1-10 19:33
原来如此啊,那以后在写P的时候可以简化代码啦,又长知识了