这是我编写的代码:
@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 =%
您需要使用
set chkScheduleTime=%scheduleTime: =%
从scheduleTime
中删除空格。
而且您也永远不会重置errorMessage
,因此一旦遇到错误,它就不会消失。
而且我想您可能想使用if defined errorMessage
。