下面是我写的代码:
@echo off
:top
set chkScheduleTime=""
set chkScheduleName=""
set /p scheduleName=Enter the name of the schedule?
cls
set /p scheduleTime=Enter the time to schedule task?
cls
set chkScheduleTime=%scheduleTime =%
set chkScheduleName=%scheduleName =%
IF /I "%chkScheduleName%"=="" (
set errorMessage=*Name of schedule required
)
IF /I "%chkScheduleTime%"=="" (
set errorMessage=%errorMessage% *Time of schedule required
)
IF NOT defined "%errorMessage%" (
echo %errorMessage%
pause
cls
goto top
)
echo Schedule Name %scheduleName%
echo.
echo Time: %scheduleTime%
:end我尝试做的是从用户那里接受两个参数,它们是任务计划名称和任务的时间。然后,程序将检查变量是否为空,并显示变量为空的错误,然后提示用户重新输入变量(如果其中一个或两个都没有输入)。但是,即使用户输入了日程名称和时间,程序也会显示以下内容:
*所需日程名称*所需日程时间
还要注意,代码的以下部分用于帮助检查用户输入的值是否仅为空格。因此,它相当于常规编程中的Trim():
set chkScheduleTime=%scheduleTime =%
set chkScheduleName=%scheduleName =%发布于 2012-09-10 05:04:04
您需要使用
set chkScheduleTime=%scheduleTime: =%去掉scheduleTime上的空格。
此外,您永远不会重置errorMessage,因此一旦出现错误,它就不会消失。
另外,我认为您可能想要使用if defined errorMessage。
https://stackoverflow.com/questions/12342644
复制相似问题