0

这是我写的代码:

 @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 =%
4

1 回答 1

0

你需要使用

set chkScheduleTime=%scheduleTime: =%

从 中去除空格scheduleTime

此外,您永远不会重置errorMessage,因此一旦出现错误,它就不会消失。

另外我认为您可能想使用if defined errorMessage.

于 2012-09-09T21:04:03.640 回答