标题: [其他] 批处理命令set怎样直接回车取默认值? [打印本页]
作者: cyy998 时间: 2012-12-17 21:06 标题: 批处理命令set怎样直接回车取默认值?
刚学的新手,一个set命令的问题,折腾了好久,请高人指点一下代码如下:- set /p time1=请输入时间1:
- set /p time2=请输入时间2:
- set /p time3=请输入时间3:
- set /p time4=请输入时间4:
复制代码
现在我的问题是:我想给这几个变量赋一个默认值,在提示输入的时候既可以手动输入一个值,也可以直接回车取默认值。
曾经想过这样:- set time1=5
- set time2=5
- set time3=5
- set time4=5
- set /p time1=请输入时间1:
- set /p time2=请输入时间2:
- set /p time3=请输入时间3:
- set /p time4=请输入时间4:
复制代码
但又觉得太繁琐,而且直接回车不能返回这个默认值,记得以前有人教过我一个很简单的参数,但时间太长了实在记不起来了,还请各位高手帮忙一下,先谢过了。
作者: weichenxiehou 时间: 2012-12-17 22:06
本帖最后由 weichenxiehou 于 2012-12-17 22:07 编辑
- set/p time1=请输入时间1:
- if not defined time1 set time1=100
- set/p time2=请输入时间2:
- if not defined time2 set time1=200
- ...
复制代码
作者: cyy998 时间: 2012-12-17 23:13
非常感谢,已经试过可行,其实之前也想过类似的方法如:- set/p time1=请输入时间1:
- if "%time1%"=="" set time1=100
- set/p time2=请输入时间2:
- if "%time2%"=="" set time1=200
- ...
复制代码
不过您的方法也简单易懂,再次感谢!
作者: 悬崖之树 时间: 2012-12-20 17:35
看看我的程序,为什么会达不到要求?- @echo off &setlocal enabledelayedexpansion
- for /l %%i in (1 1 4 ) do (
- set /p time%%i=请输入时间%%i:
- if not defined time%%i call :s
- )
- goto :out
- :s
- if %%i==1 set time1=5
- if %%i==2 set time2=7
- if %%i==3 set time3=6
- if %%i==4 set time4=8
- goto :eof
- :out
- for /l %%i in (1 1 4) do (
- echo time%%i的值是 !time%%i!
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |